sql 分组筛选问题

2020-10-30 16:05发布

问题:

假设有一个销售表 a, 其中有 日期 date、销售数量 wareqty 、销售价格 saleprice 等字段。现在把他按月汇总,随机抽取每月累计金额 wareqty*saleprice 为的1万 数据明细。这个怎么写?

回答1:

不知道理解得对不对

SELECT

FROM
a
WHERE
DATE_FORMAT(date, '%Y-%m') = (
select date from(
SELECT

FROM
(
SELECT
DATE_FORMAT(date, '%Y-%m') AS date,
sum(wareqty * saleprice) AS sum
FROM
a
GROUP BY
DATE_FORMAT(date, '%Y-%m')
) m
WHERE
m.sum = 10000
ORDER BY
rand()
LIMIT 1
) n
)



回答2:

你可以先根据data来group by,求出来的date用left来截取年月(比如data格式是2018-10-01,用left(data,7) as date),然后再用data来group by一下where wareqty*saleprice =10000就好



回答3:

每月累计金额 wareqty*saleprice 为的1万 数据明细 条件是刚好等于一万 还是大于一万



标签: mssql 分组