如何通过语句获取组中的所有值?显示GROUP BY中的所有值
mysql>select * from mytable;
+------+--------+--------+
| name | amount | status |
+------+--------+--------+
| abc | 12 | A |
| abc | 55 | A |
| xyz | 12 | B |
| xyz | 12 | C |
+------+--------+--------+
4 rows in set (0.00 sec)
mysql>select name, count(*) from mytable where status = 'A' group by name;
+------+----------+
| name | count(*) |
+------+----------+
| abc | 2 |
+------+----------+
1 row in set (0.01 sec)
预期结果:
+------+----------+
| name | count(*) |
+------+----------+
| abc | 2 |
| xyz | 0 |
+------+----------+
:在这种情况下,如果我们想要显示数量列值,SQL仅返回第一个值,即12!我们能做些什么来看12和55? – 2013-09-30 16:16:07
您必须指定要更精确地查看的查询结果。如果你的意思是你想查看组值和单个行值,那么你应该使用原始表加入GROUP BY查询的结果(作为子查询处理):'SELECT m。*,s.group_count FROM mytable AS m JOIN(SELECT a.name,COUNT(b.name) FROM mytable AS a LEFT OUTER JOIN mytable AS b ON a.name = b.name AND b.status ='A' GROUP BY a。名称)AS s ON m.name = s.name;'或大约。 – 2013-09-30 16:25:38
老实说,我不明白这个问题: - 你能不能简单描述一下?我想要的是只有一个**名称**作为父母 – 2013-09-30 16:34:10