簡體   English   中英

使用相同的PK但值鍵不同的查詢

[英]Filtering queries with same PK but different value keys

我有以下數據

123    Amy    Sleep
234    Bob    Sleep
987    Helen    Sleep
123    Amy    Awake
123    Amy    Awake
678    Fay    Awake
765    Jay    Awake
876    Irene    Awake
987    Helen    Awake

從運行

SELECT t1.sid, name, status
FROM t2
JOIN Apply ON t2.sid=t1.sid
WHERE status='Awake' OR status='Sleep'
  1. 我該怎么做才能過濾出具有睡眠和清醒狀態的人的唯一元組? 例如:艾米和海倫。

  2. 我如何才能得到僅睡着/清醒的人的元組?

聚集是找到既醒着又睡着的人的一種方法:

SELECT sid, name
FROM yourTable
WHERE status IN ('Sleep', 'Awake')
GROUP BY sid, name
HAVING MIN(status) <> MAX(status);

在此處輸入圖片說明

演示

我們可以嘗試類似的方法來找到只有一種身份的人:

SELECT sid, name
FROM yourTable
GROUP BY sid, name
HAVING MIN(status) = MAX(status);

在此處輸入圖片說明

演示

使用GROUP BY

GROUP BY語句通常與聚合函數(COUNT,MAX,MIN,SUM,AVG)一起使用,以將結果集按一列或多列分組。

https://www.w3schools.com/sql/sql_groupby.asp

您可以在下面嘗試-

    SELECT sid, name
    FROM yourTable
    WHERE status IN ('Sleep', 'Awake')
    GROUP BY sid, name
    having(distinct status)=2

暫無
暫無

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

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