簡體   English   中英

如何在SQL中比較兩列以獲取多行?

[英]How to compare two columns in SQL for multiple rows?

我有一個包含四列的數據集( authordocumentrating 1rating 2

我該如何挑選那些撰寫的文檔的rating 1被評為rating 1級高於rating 2 ,並且還撰寫了另一文檔的rating 2被評為rating 2級高於rating 1

基本上:

AUTHOR    DOCUMENT    RATING 1   RATING 2

A         1           1          2
B         2           1          2
B         3           3          1
C         4           2          2 
C         5           3          4
C         6           1          3
D         7           1          2
D         8           1          2

所以我想要的查詢將給我B和C,因為它編寫的文檔在兩個等級中都有較高和較低的數字。

我有的:

SELECT DISTINCT author
 FROM(
 (SELECT author
 FROM table_name
 WHERE  rating1 < rating2)

UNION

(SELECT author
 FROM table_name
 WHERE  rating1 > rating2)
)
AS a

我無法弄清楚如何對作者進行分組,測試rating 1rating 2是否都較高和較低,輸出名稱,然后轉到下一組作者。 上面打印的只是一組不同的名稱,它們具有較高或較低的數字。 因此,例如,這也將打印D。

我缺少滿足上述條件的SQL代碼是什么

嘗試這個,

select * 
  from myTable as t1
       inner join MyTable as t2 
           on t1.author = t2.author
           and t2.rating1 > t2.rating2
 where t1.rating1 > t1.rating2

暫無
暫無

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

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