簡體   English   中英

查詢以返回(分組的)行,其中不存在具有column = condition的行

[英]Query to return (grouped) rows where no row with column=condition exists

假設我有一個包含兩列的表,一個client_id和一個布爾值。

給定的client_id有多個數據條目,每個條目的布爾值都可以設置為true,也可以不設置為true。

我需要一個查詢,該查詢將僅返回沒有ROWS且將布爾值設置為true的client_id,並且需要按client_id進行分組。

我敢肯定,這很簡單,現在就讓我擺脫了。

使用HAVING子句來過濾組:

SELECT client_id FROM my_table GROUP BY client_id HAVING SUM(boolean) = 0

注意, SUM(boolean)在MySQL中有效,因為它沒有真正的布爾類型。 在其他RDBMS中,您要么必須使用其他聚合函數,要么測試布爾值並返回可在SUM()使用的結果:

... HAVING SUM(CASE WHEN boolean THEN 1 END) = 0

暫無
暫無

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

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