Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
事件的SQL查询_Sql - Fatal编程技术网

事件的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
是否定义了审核顺序?如果审核人至少有两次审核,同一审核人值需要在表中出现多次。您发布的示例数据并非如此。每个审阅者只出现一次。