Sql 从select语句中的SUM返回前5名
我需要返回以下语句,但我只想返回每个销售价值的前5名….而不是所有记录Sql 从select语句中的SUM返回前5名,sql,sql-server,tsql,Sql,Sql Server,Tsql,我需要返回以下语句,但我只想返回每个销售价值的前5名….而不是所有记录 Select ID, Code, sum(Sale) as Sale from TableName Where Code = 11 Group By ID, code 我不要这个 也许你需要一些类似的东西: ;WITH sales ( SELECT id, code, sale, ROW_NUMBER() OVER (PARTITION BY id, code ORDER BY sales DESC) n FRO
Select ID, Code, sum(Sale) as Sale from TableName
Where Code = 11
Group By ID, code
我不要这个
也许你需要一些类似的东西:
;WITH sales (
SELECT
id,
code,
sale,
ROW_NUMBER() OVER (PARTITION BY id, code ORDER BY sales DESC) n
FROM
TableName
WHERE
Code = 11
)
SELECT
id, code, sum(sale) sale
FROM
sales
WHERE
n <= 5
GROUP BY
id,
code
通过帮助查找最后5次销售的行号和分区。那么你只和前5名相加
此查询返回每个id、代码组的前5名销售额之和。如果只想返回每个组的前5名结果,可以执行以下操作:
select id, code, SUM (sale)
from
(
select id, code, sale,
ROW_NUMBER() over(partition by id, code order by sale desc) rn
from tablename
) v
where rn<=5
group by id, code
with cte as
(ID, Code, Sale,ROW_NUMBER() over(partition by ID,
Code order by (select 0)) rownum
from TableName)
Select ID, Code, sum(Sale) as Sale from cte
Where Code = 11
and rownum<=5
Group By ID, code
with cte as
(ID, Code, Sale,ROW_NUMBER() over(partition by ID,
Code order by Sale desc) rownum
from TableName)
Select ID, Code, sum(Sale) as Sale from cte
Where Code = 11
and rownum<=5
Group By ID, code
如果您希望以最高工资返回每个组的前5名结果,您可以这样做:
with cte as
(ID, Code, Sale,ROW_NUMBER() over(partition by ID,
Code order by (select 0)) rownum
from TableName)
Select ID, Code, sum(Sale) as Sale from cte
Where Code = 11
and rownum<=5
Group By ID, code
with cte as
(ID, Code, Sale,ROW_NUMBER() over(partition by ID,
Code order by Sale desc) rownum
from TableName)
Select ID, Code, sum(Sale) as Sale from cte
Where Code = 11
and rownum<=5
Group By ID, code
前5名的总销售额,或者每个组前5名销售额的总和?我只想返回每个组前5名的结果。这标记为SQL Server,ORDER BY/LIMIT技术仅适用于MySQL。
with cte as
(ID, Code, Sale,ROW_NUMBER() over(partition by ID,
Code order by (select 0)) rownum
from TableName)
Select ID, Code, sum(Sale) as Sale from cte
Where Code = 11
and rownum<=5
Group By ID, code
with cte as
(ID, Code, Sale,ROW_NUMBER() over(partition by ID,
Code order by Sale desc) rownum
from TableName)
Select ID, Code, sum(Sale) as Sale from cte
Where Code = 11
and rownum<=5
Group By ID, code