簡體   English   中英

SQL-在一組行中選擇全部或不選擇

[英]SQL - Selecting all or none in a set of rows

我有一個表,其中多個條目通過具有相同的編號進行分組。 這些行中的每一個也都有結果。

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。

有兩種不同的方法可以做到這一點。 這是一種使用order bylimit來選擇最高group方法,其中使用maxmin limit所有結果均為1

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

這是一個稍微不同的方法。

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

SQL Fiddle上檢查

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM