一尘不染

SQL查询来计数不同值的数量

sql

x y

A P
A P
B P
B Q

嗨,我需要一个查询来返回x的所有唯一值,多少个y值。因此,对于以上数据,它将返回:

x count
A 1
B 2

谢谢


阅读 173

收藏
2021-05-30

共1个答案

一尘不染

使用GROUP BY和COUNT(DISTINCT ...)

SELECT x, COUNT(DISTINCT y) AS cnt_y
FROM yourtable
GROUP BY x

结果:

x cnt_y
A 1
B 2

测试数据:

CREATE TABLE yourtable (x VARCHAR(100) NOT NULL, y VARCHAR(100) NOT NULL);
INSERT INTO yourtable (x, y) VALUES
('A', 'P'),
('A', 'P'),
('B', 'P'),
('B', 'Q');
2021-05-30