窗口滞后 sqlzoo.net #7



显示的查询包括一个 JOIN t 世界表,因此我们可以访问每个国家的总人口并计算感染率(每 100,000 例(。

显示每个国家/地区的感染率排名。仅包括人口至少为 1000 万的国家/地区。

答。

SELECT world.name,
ROUND(100000*confirmed/population,00) as rd,
rank() over (order by rd)
FROM covid 
JOIN world ON covid.name=world.name
WHERE whn = '2020-04-20' 
AND population > 10000000
ORDER BY population DESC

上面的代码是我的解决方案,但我仍然得到错误的答案。有谁知道正确的解决方案?

这里确认感染率/人口; 所以查询如下-

SELECT world.name,
ROUND(100000*confirmed/population,0),
RANK() OVER (ORDER BY confirmed/population) AS rank
FROM covid JOIN world ON covid.name=world.name
WHERE whn = '2020-04-20' AND population > 10000000
ORDER BY population DESC
  1. 网站上的答案四舍五入到小数点后 2 位,因此需要在 ROUND 函数中指定。

  2. 如果将 ORDER BY rf(在第 2 行创建的变量(与 RANK 函数结合使用,则 RANK 函数使用现在四舍五入的数字,使值相等,从而在排名中创建平局(例如,尼泊尔和埃塞俄比亚都是 6(。答案使用原始数据,因此消除了队伍中的联系。因此,会给您带来令人满意的查询是:

    SELECT world.name,
    ROUND(100000*confirmed/population,2),
    RANK() OVER(ORDER BY 100000*confirmed/population) AS rank
    FROM covid JOIN world ON covid.name=world.name
    WHERE whn = '2020-04-20' AND population > 10000000
    ORDER BY population DESC
    

相关内容

  • 没有找到相关文章

最新更新