我想编写查询来检查存在多少个具有相同值的最小值以及每个类别的计数。 表格数据看起来像这样
Id CatId value 1 1 2.3 2 1 2.3 3 2 1.1 4 1 4.2 5 2 1.5 6 3 8.1 7 1 3.3 8 3 4.2 9 2 1.9
查询应该返回像这样的行
CatId min(value) count_with_same_min_value count(CatId) 1 2.3 2 4 2 1.1 1 3 3 4.2 1 2
谢谢
最佳答案
您可以使用子查询来完成:
select c.catid, min(c.value),
sum(c.value = cmin.minval),
count(c.CatId)
from category c join
(select catid, min(value) as minval
from category
group by catid
) cmin
on c.catid = cmin.catid
group by c.catid;
或者在选择中使用 select
:
select catid, min(value),
(select count(*) from category c2 where c2.value = min(c.value)),
count(CatId)
from category c
group by catid;
关于MYSQL:如何编写 sql 查询以查找最小值但具有与类别计数相同的值的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18789749/