SQL查询计算不同值的数量

时间:2011-03-09 22:44:08

标签: mysql sql

x y

A P
A P
B P
B Q

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

x count
A 1
B 2

由于

2 个答案:

答案 0 :(得分:6)

使用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');

答案 1 :(得分:3)

这是GROUP BY语句的简单案例。

以下是一些代码:

SELECT x, COUNT(DISTINCT y) AS y
FROM table
GROUP BY x;