gpt4 book ai didi

SQL Server 分组

转载 作者:搜寻专家 更新时间:2023-10-30 20:17:00 25 4
gpt4 key购买 nike

我有“销售”表,其中有 stor_idord_datequantity。问题是找到 stor_id ,它具有 ord_date 的最大 quantity

我使用了下面的查询

select sales.ord_date, sales.stor_id, sum(sales.qty)
from sales
group by sales.ord_date, sales.stor_id
order by sales.ord_date desc

例如,在我得到的结果中,在 2016-12-04stor_id = 1 ,商店售出了 35 本书,并且 stor_id = 2 商店当天售出了 20 本书。

我想取具有相同日期的每个组的最大值(在本例中 stor_id = 1,因为它售出了 35 个)。

最佳答案

你可以使用上面的sql server 2008的下面的查询

select * from
(
select
ord_date,
case
when s.tot_sales = max(s.tot_sales) over (partition by s.ord_date)
then s.stor_id
else NULL
end as store_id,
max(s.tot_sales) over (partition by s.ord_date) as maximum_sales
from
(select distinct ord_date, stor_id,
sum(qty) over (partition by ord_date, stor_id) as tot_sales
from sales
)s
)s
where s.store_id is not NULL

工作 SQL fiddle : http://sqlfiddle.com/#!3/179e1/8

对于其他版本的SQL Server

select sales.* from 
(
select ord_date, stor_id,
sum(qty) as tot_sales
from sales
group by ord_date, stor_id
)sales
inner join
(
select
ord_date,
max(s.tot_sales) as maximum_sales
from
(
select ord_date, stor_id,
sum(qty) as tot_sales
from sales
group by ord_date, stor_id
)s
group by ord_date
)s
on sales.ord_date=s.ord_date and sales.tot_sales=s.maximum_sales

工作 sql fiddle : http://sqlfiddle.com/#!3/179e1/9

关于SQL Server 分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34249690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com