我的数据集包含四列(author
,document
,rating 1
,rating 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代码缺少哪些内容符合上述标准
答案 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