- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的销售表
ID amount created_at
48 10 2018-10-15 10:57:24
49 20 2018-10-16 10:58:14
50 25 2018-10-22 14:07:31
51 24 2018-10-24 12:13:15
52 36 2018-10-24 12:13:21
53 40 2018-10-30 09:46:37
54 40 2018-10-28 09:46:37
55 40 2018-11-1 09:46:37
56 40 2018-11-2 09:46:37
57 40 2018-11-2 09:46:37
58 40 2018-11-2 09:46:37
59 40 2018-11-2 09:46:37
60 40 2018-11-2 09:46:37
我的问题
SELECT Date(created_at),
Count(*)
FROM sale
WHERE Date(created_at) BETWEEN ( Now() - INTERVAL 7 day ) AND Now()
GROUP BY Date(created_at)
我的结果
date(created_at) count
2018-10-28 12:13:15 1
2018-10-1 09:46:37 1
2018-10-2 09:46:37 5
假设周从 2018-10-28 开始,如果没有特定日期的记录,我需要如下结果,那么它将为 0。
day count
mon 1
tue 0
wed 0
thu 1
fri 5
sat 0
sun 0
最佳答案
Date_format()
使用 %a
说明符获取特定 created_at
日期的缩写工作日名称 的函数。我们可以将其用作我们的 Left Join
条件。Left Join
允许我们考虑所有工作日,即使特定日期没有匹配的 created_at
。Count(*)
在这里不起作用,因为它计算组中的所有行。但是,我们不想计算没有匹配行的行。因此,我们使用 Count(created_at)
,因为它会忽略 null
值。Where
子句中的 Date()
函数使用。您需要在工作日使用主表。
查询:
SELECT week_table.day_order,
week_table.wkday AS `day`,
Count(created_at) AS `count`
FROM
(
SELECT 'Mon' AS wkday, 1 AS day_order UNION ALL
SELECT 'Tue', 2 UNION ALL
SELECT 'Wed', 3 UNION ALL
SELECT 'Thu', 4 UNION ALL
SELECT 'Fri', 5 UNION ALL
SELECT 'Sat', 6 UNION ALL
SELECT 'Sun', 7
) AS week_table
LEFT JOIN sale AS s
ON DATE_FORMAT(created_at, '%a') = week_table.wkday AND
created_at >= ( CURDATE() - INTERVAL 7 day ) AND
created_at < ( CURDATE() + INTERVAL 1 day )
GROUP BY week_table.day_order, week_table.wkday
ORDER BY week_table.day_order;
结果
| day_order | day | count |
| --------- | --- | ----- |
| 1 | Mon | 0 |
| 2 | Tue | 1 |
| 3 | Wed | 0 |
| 4 | Thu | 1 |
| 5 | Fri | 5 |
| 6 | Sat | 0 |
| 7 | Sun | 1 |
关于mysql - 获取上周每一天的记录数。如果在特定日期没有找到记录,那么我想要 0 作为记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53118509/
我想检索上周和 15 周前的数据。 注意: 仅 15 周前的同一工作日,而不是其间的所有数据。例如,我想要 15 周前的每个星期四的数据。 这是我的 MySQL 表的简化,具有所需的结果。 Stati
我正在寻找一种基于以下条件选择行的方法: 本周 (S-S) 上周 (SS) 我遇到的问题是专门从Sunday-Sunday中选择。 目前我正在使用: SELECT SUM(time) FROM `ti
我有一个包含以下数据的 SQL 表: select day, counter from table1 where day LIKE '%201601%'; +----------+---------+
我有一个包含 3 列的表格:id、updated_at、click_sum。 许多行具有完全相同的 updated_at 值,这使得很难简单地检索数据、按 update_at 排序并在图表中显示总和。
我有一个 orders 表,其中包含 orderID 和 order_date。 我想查询上周、上个月甚至昨天的数据,但是我不知道如何从当前时间中减去时间 我的 order_date 字段是 TIME
在我的 iTunes connect 开发者资料中,我看到了与上周相比的变化,就在它的下方,售出单位数量旁边显示有变化。这个“变化”是什么?这是有多少人卸载了该应用程序? 最佳答案 不是,是上周下载量
我正在做一些统计,我想选择(仅上周)和本周的时间。 本周很简单: $start = strtotime('this week'); $finish = time(); 上周 $start = strt
前言 本文主要介绍的是关于利用python 获取本周,上周,本月,上月,本季的时间,话不多说了,来一起看看实现的方法吧 示例代码: ?
查询当前这周的数据 SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m
我需要设置上周、上个月更改下拉列表的时间段 我正在做 switch (DDL.SelectedIndex) { case 0:
使用此查询: date(timestamp_column) >= SUBDATE(curdate(), WEEKDAY(curdate())) - interval 1 week AND date(t
我的 Android SQLite 数据库中有这个表: CREATE TABLE statistics (subject TEXT, hits INTEGER, fails INTEGER, date
目录 1、总结 一句话总结:使用mktime()函数即可:PHP mktime() 函数用于返回一个日期的 Unix 时间戳。 1、mktime()如何获取昨天的开始时间和结束时间? 2、
我需要显示有关Kibana的报告,该报告将基于多个日期间隔汇总结果。时间与时间戳一起映射为浮点数据类型。 例: Jobs, Yesterday, Last Week, Last Quarters Jo
我有一个名为 sales 的表,如下所示: s.no item_sold date 1 soap 25.07.2017 2
我想做的是让 NSDate 今天、昨天、本周、上周、本月、上个月变量准备好进行比较,以便在 UITableView 的 titleForHeaderInSection 上添加标题 我想要的是在下面的代
所以,我想做的是实现一个数据范围选择,它不显示两个日期选择器“从”和“到”。我想让用户在今天、昨天、上周、上个月等之间进行选择。 我在服务器端的应用程序中有类似的东西,但是: 1- 代码看起来很糟糕;
我是一名优秀的程序员,十分优秀!