查看: 2486| 回复: 5
跳转到指定楼层
上一主题 下一主题
收起左侧

[其他] 讨论一道SQL题 求每日过去7天的销售量(加米)

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
有一个table有2个column。
order_id, sell_date

想求过去30天里每一天的过去7天销售量。
比如
2019/01/30 就是count 有多少order_id 从2019/01/30 - 2019/01/23
2019/01/29 就是count 有多少order_id 从2019/01/29 - 2019/01/22





我想到就是用t-sql来declare一个i然后跑while (i < 30) loop。 但是需要建一个临时table来存结果。

不知道大家有没有其他什么思路。

给大家加米了

评分

参与人数 1大米 +5 收起 理由
14417335 + 5 很有用的信息!

查看全部评分


上一篇:有人碰到leetcode账号被盗吗
下一篇:会议室 follow up
🔗
ygmm 2019-4-14 12:36:33 | 只看该作者
全局:
self join 来做
select sell_date,  last7days = select  count(order_id) from table as B where B.sell_date >= datediff(day, -7, A.sell_date) and B.sell_date <= A.sell_date)
from table as A where sell_date >= datediff(day, -30, getdate())

补充内容 (2019-4-14 12:37):
如果date是连续不间断的,就用SQL的window function来做 preceding 7 row 那个
回复

使用道具 举报

🔗
 楼主| robinals 2019-4-15 00:47:19 | 只看该作者
全局:
ygmm 发表于 2019-4-14 12:36
self join 来做
select sell_date,  last7days = select  count(order_id) from table as B where B.sell_ ...

谢谢 现在只能加1分哈哈

但是好像date 不能直接和datediff比较,datediff返回一个int。我再看看逻辑
回复

使用道具 举报

🔗
redmapleleaf 2019-4-15 02:27:04 | 只看该作者
全局:
  1. SELECT validdates.sell_date,
  2. (select COUNT(order_id) from table1 WHERE datediff(D, table1.sell_date, validdates.sell_date)<=6 and datediff(D, table1.sell_date, validdates.sell_date)>=0) numberOfOrders
  3. FROM (SELECT DISTINCT [sell_date]
  4.                 FROM table1
  5.                 WHERE sell_date >= '2019-1-7' AND sell_date <= '2019-2-7') validdates
  6.        
复制代码


求加米。

评分

参与人数 1大米 +1 收起 理由
robinals + 1 很有用的信息!

查看全部评分

回复

使用道具 举报

🔗
ygmm 2019-4-15 04:14:43 | 只看该作者
全局:
robinals 发表于 2019-4-15 00:47
谢谢 现在只能加1分哈哈

但是好像date 不能直接和datediff比较,datediff返回一个int。我再看看逻辑

哎,抱歉,我笔误了,不是datediff, 是 dateadd
回复

使用道具 举报

🔗
ygmm 2019-4-15 04:16:50 | 只看该作者
全局:
是这个,如果有问题再告诉我。
select sell_date,  last7days = select  count(order_id) from table as B where B.sell_date >= dateadd(day, -7, A.sell_date) and B.sell_date <= A.sell_date)
from table as A where sell_date >= dateadd(day, -30, getdate())  如果查今天的最近一个月的每日的最近7天情况

评分

参与人数 1大米 +1 收起 理由
robinals + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表