让我们说mysql就是这样的
select x,y
from xx
group by y
我想知道选择了多少行,我试图使用count但是它不会返回所有结果,因为我正在使用group by。
怎么做?
由于
答案 0 :(得分:14)
您可以像这样包装您的查询:
SELECT COUNT(*) FROM
(select x,y
from xx
group by y) sub;
答案 1 :(得分:0)
假设您有一个包含以下内容的表格:
-------------------
| ID | NAME | GROUP |
+-------------------+
| 1 | A | 1 |
+-------------------+
| 2 | B | 2 |
+-------------------+
| 3 | C | 2 |
+-------------------+
| 4 | D | 3 |
+-------------------+
| 5 | E | 1 |
+-------------------+
| 6 | F | 3 |
+-------------------+
以下自我LEFT JOIN计算GROUP中不同值的数量。
SELECT COUNT(*)
FROM table AS t1
LEFT JOIN table AS t2 ON t2.GROUP = t1.GROUP AND t2.ID > t1.ID
WHERE t2.id IS NULL;
此查询的作用是为每个组找出id最高的元素。
答案 2 :(得分:0)
您可以查看我的https://stackoverflow.com/a/36449637/2439715
SELECT
sum(1) as counttotal
FROM (
Your query with group by operator
) as T