繁体   English   中英

mysql group by和count rows问题

[英]mysql group by and count rows problem

让我们说mysql是这样的

select x,y 
from xx 
group by y

我想知道选择了多少行,我试图使用count但是它不会返回所有结果,因为我正在使用group by。

怎么做?

谢谢

你可以这样包装你的查询:

SELECT COUNT(*) FROM
  (select x,y  
    from xx  
    group by y) sub;

假设您有一个包含以下内容的表:

 -------------------
| 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最高的元素。

你可以查看我的ans https://stackoverflow.com/a/36449637/2439715

SELECT 
    sum(1) as counttotal
FROM (
    Your query with group by operator
) as T

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM