事件的SQL查询
请你为同一个问题解这个表好吗。选择每个评审员第二次评审的平均评审长度,至少有两次评审事件的SQL查询,sql,Sql,请你为同一个问题解这个表好吗。选择每个评审员第二次评审的平均评审长度,至少有两次评审 ReviewID Listing_id ReviewLength Reviewer ------------------------------------------------ 1 1230 3 sdf 2 3450 35 sgr 3 44
ReviewID Listing_id ReviewLength Reviewer
------------------------------------------------
1 1230 3 sdf
2 3450 35 sgr
3 4450 45 tyu
4 3560 67 gdh
5 4560 78 gdj
6 4450 65 dgj
7 4450 32 bhf
8 3560 3 kkh
9 1230 6 dtg
10 3430 7 cgfh
11 4450 13 kld
12 1230 69 dhh
13 560 86 dch
SELECT AVG(ReviewLength) avg_review_length
FROM (
SELECT
ReviewLength,
ROW_NUMBER() OVER(PARTITION BY Reviewer ORDER BY ReviewID) rn
FROM mytable
) x
WHERE rn = 2
下面是一个解决方案,它使用窗口函数计算每个审阅者第二次审阅的平均长度(如果否)。我假设可以使用列
ReviewID
对评论进行排序。此外,我发现这种情况是多余的:每个审核人的第二次审核至少有两次审核:如果审核人有第二次审核,那么他至少进行了两次审核
ReviewID Listing_id ReviewLength Reviewer
------------------------------------------------
1 1230 3 sdf
2 3450 35 sgr
3 4450 45 tyu
4 3560 67 gdh
5 4560 78 gdj
6 4450 65 dgj
7 4450 32 bhf
8 3560 3 kkh
9 1230 6 dtg
10 3430 7 cgfh
11 4450 13 kld
12 1230 69 dhh
13 560 86 dch
SELECT AVG(ReviewLength) avg_review_length
FROM (
SELECT
ReviewLength,
ROW_NUMBER() OVER(PARTITION BY Reviewer ORDER BY ReviewID) rn
FROM mytable
) x
WHERE rn = 2
你用的是什么产品?“SQL”只是一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品
postgresql
,oracle
,sql server
,db2
,…您期望的输出是什么?关系数据库中的行未排序。没有“第二次审查”这样的东西,除非你有一些列定义审查的顺序。reviewid
或listing\u id
是否定义了审核顺序?如果审核人至少有两次审核,同一审核人值需要在表中出现多次。您发布的示例数据并非如此。每个审阅者只出现一次。