sql问题
SELECT PL_SITE.SITE_NUMBER,sum(DailyReport.ClinkerYeildDay) as production FROM dbo.[DailyReport] LEFT JOIN PL_SITE ON DailyReport.factoryKey = PL_SITE.OBJECT_KEY  where 1=1 group by PL_SITE.SITE_NUMBER

我想在这个sql的基础上提取sum(DailyReport.ClinkerYeildDay)数量最多的前五名,我应该怎么改?


FineReport 故事的小黄瓜 发布于 2018-11-29 09:44
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
1
zsh331Lv8专家互助
发布于2018-11-29 09:47
SELECT
PL_SITE.SITE_NUMBER,
sum(DailyReport.ClinkerYeildDay) AS production
FROM
dbo.[ DailyReport ]
LEFT JOIN PL_SITE ON DailyReport.factoryKey = PL_SITE.OBJECT_KEY
WHERE
1 = 1
GROUP BY
PL_SITE.SITE_NUMBER order by sum(DailyReport.ClinkerYeildDay) desc  limit 5


上面是MySQL语法~

--------------------------

下面是SQL server 语法~


SELECT top 5
PL_SITE.SITE_NUMBER,
sum(DailyReport.ClinkerYeildDay) AS production
FROM
dbo.[ DailyReport ]
LEFT JOIN PL_SITE ON DailyReport.factoryKey = PL_SITE.OBJECT_KEY
WHERE
1 = 1
GROUP BY
PL_SITE.SITE_NUMBER order by sum(DailyReport.ClinkerYeildDay) desc


最佳回答
0
axingLv6专家互助
发布于2018-11-29 09:46

select top 5 * from (

SELECT

PL_SITE.SITE_NUMBER,

SUM (

DailyReport.ClinkerYeildDay

) AS production

FROM

dbo.[ DailyReport ]

LEFT JOIN PL_SITE ON DailyReport.factoryKey = PL_SITE.OBJECT_KEY

WHERE

1 = 1

GROUP BY

PL_SITE.SITE_NUMBER

  order by production desc) t


最佳回答
0
凌建Lv7高级互助
发布于2018-11-29 09:50

SQLSERVER中可以使用

ROW_NUMBER () OVER (ORDER BY SUM (R.销售额) DESC) 排序

来进行排序,然后包一层,select 表明.查询字段,表明.排序  就可以了  where后面加个表明.排序<=5


  • 4关注人数
  • 442浏览人数
  • 最后回答于:2018-11-29 09:50
    请选择关闭问题的原因
    确定 取消
    返回顶部