sql-在一组行中选择all或none

gtlvzcf8  于 2021-06-23  发布在  Mysql
关注(0)|答案(2)|浏览(341)

我有一个表,其中多个条目按相同的编号分组。每一行也有一个结果。
例子

id 4 | Group 5 | Result 1
id 5 | Group 5 | Result 1
id 6 | Group 6 | Result 0
id 7 | Group 6 | Result 1

我该如何选择所有结果都是相同数字的最高数字组?
换句话说,假设我想得到最高的一组 result = 1 ; 我不想要第6组,因为结果是0,也不想要任何比第4组早的组,因为第5组的结果都是1。

xqnpmsa8

xqnpmsa81#

有几种不同的方法可以做到这一点。这里有一种方法可以选择最高的 group 使用 order by 以及 limit 所有结果都在哪里 1 使用 max 以及 min :

select grp
from yourtable
group by grp
having max(result) = 1 and min(result) = 1
order by grp desc
limit 1
9nvpjoqh

9nvpjoqh2#

这是一个有点不平衡的方法。

SELECT `group` FROM `test` 
GROUP BY `group`
HAVING COUNT(`result`)=SUM(`result`) AND SUM(`result`)>0
ORDER BY `group` DESC LIMIT 1;

在sql fiddle上检查它

相关问题