如何在SQL中比较多行的两列?

时间:2014-03-27 05:11:35

标签: sql

我的数据集包含四列(authordocumentrating 1rating 2

如何选择撰写评价高于rating 1而不是rating 2的文档的作者,并且还撰写了另一份评价高于rating 2的文档的作者{ {1}}。

基本上:

rating 1

所以我想要的查询会给我B和C,因为它写的文档在两个评级中都有更高和更低的数字。

我有什么:

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

我无法弄清楚如何对作者进行分组,测试SELECT DISTINCT author FROM( (SELECT author FROM table_name WHERE rating1 < rating2) UNION (SELECT author FROM table_name WHERE rating1 > rating2) ) AS a rating 1是高还是低,输出名称然后转到下一组作者。以上打印的内容只是具有更高或更低数字的不同名称的集合。所以这个也会打印D例如。

我的SQL代码缺少哪些内容符合上述标准

1 个答案:

答案 0 :(得分:1)

试试这个,

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