Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >对具有两个不同日期条件的列中的所有行进行计数

对具有两个不同日期条件的列中的所有行进行计数
EN

Stack Overflow用户
提问于 2020-03-30 07:52:08
回答 2查看 39关注 0票数 0

我正在尝试将两个带有日期条件的计数查询(如下所示)转换为一个查询。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT COUNT(*) as yesterday FROM orders WHERE DATE(timedate) = DATE(NOW() - INTERVAL 1 DAY)
SELECT COUNT(*) as yesterday FROM orders WHERE DATE(timedate) = DATE(NOW() - INTERVAL 2 DAY)

Following the advice of another answer我创建了以下代码,但在语法方面似乎不起作用,我也不太确定原因。有没有其他方法可以做到这一点?我在这个问题上找不到类似的问题

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT 
    SUM(IF(DATE(timedate) = DATE(NOW() - INTERVAL 1 DAY))) AS testcount1,
    SUM(IF(DATE(timedate) = DATE(NOW() - INTERVAL 2 DAY))) AS testcount2
FROM 
    orders
EN

回答 2

Stack Overflow用户

发布于 2020-03-30 07:55:40

你想要条件聚合。我将该查询表述为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT 
    SUM(
        timedate >= CURRENT_DATE - INTERVAL 1 DAY
        and timedate < CURRENT_DATE
    ) AS testcount1,
    SUM(
        timedate >= CURRENT_DATE - INTERVAL 2 DAY
        and timedate < CURRENT_DATE- INTERVAL 1 DAT
    ) AS testcount2
FROM orders

详细信息:

  • 这使用了MySQL的一个很好的功能,它在数字上下文中将false/true条件求值为0/1
  • 没有日期函数应用于timedate列:相反,我们进行litteral日期比较。这要高效得多,因为数据库可能会利用datetime列

上的索引

您可能还希望将WHERE子句添加到查询中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
WHERE 
    timedate >= CURRENT_DATE - INTERVAL 2 day
    AND timedate< CURRENT_DATE
票数 1
EN

Stack Overflow用户

发布于 2020-03-30 07:57:37

您缺少IF表达式的输出值。此外,您还应该使用CURRENT_DATE(),这样就不需要转换为DATE

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT 
    SUM(IF(DATE(timedate) = CURRENT_DATE() - INTERVAL 1 DAY, 1, 0)) AS testcount1,
    SUM(IF(DATE(timedate) = CURRENT_DATE() - INTERVAL 2 DAY, 1, 0)) AS testcount2
FROM 
    orders

请注意,MySQL在数值上下文中将布尔表达式视为1 (true)或0 (false),因此您实际上可以对表达式执行SUM操作,而不需要IF

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT 
    SUM(DATE(timedate) = CURRENT_DATE() - INTERVAL 1 DAY) AS testcount1,
    SUM(DATE(timedate) = CURRENT_DATE() - INTERVAL 2 DAY) AS testcount2
FROM 
    orders
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60926157

复制
相关文章
如何对矩阵中的所有值进行比较?
需求相对比较明确,就是在矩阵中显示的值,需要进行整体比较,而不是单个字段值直接进行的比较。如图1所示,确认矩阵中最大值或者最小值。
逍遥之
2020/05/14
7.7K0
不同列不同行的数据如何进行转置?
案例模拟文件下载 http://gofile.me/4KHV7/SUo5ywXxC
逍遥之
2020/03/24
2.9K0
不同列不同行的数据如何进行转置?
使用 Python 按行和按列对矩阵进行排序
假设我们采用了一个输入的 MxM 矩阵。我们现在将使用嵌套的 for 循环对给定的输入矩阵进行逐行和按列排序。
很酷的站长
2023/02/22
6.1K0
使用 Python 按行和按列对矩阵进行排序
NumPy中的广播:对不同形状的数组进行操作
NumPy是用于Python的科学计算库。它是数据科学领域中许多其他库(例如Pandas)的基础。
deephub
2021/01/12
3K0
NumPy中的广播:对不同形状的数组进行操作
对大文件字符进行计数
但是当文件过大时,会报错,显示空间不足: sort: write failed: /tmp/sortbDyE0W: No space left on device
生信编程日常
2020/10/10
6270
表头行的日期要转成一列,怎么搞?
小勤:我这堆表的表头上有个日期,是表示每张表的更新时间,我想将这个日期变成这个表的一列,然后再和其他表的数据汇总到一起,怎么弄?
大海Power
2023/09/09
2530
表头行的日期要转成一列,怎么搞?
SQL中的行转列和列转行
SQL是IT行业很多岗位都要求具备的一项能力,对于数据岗位而言更是如此,甚至说扎实的SQL基础也往往是入职这些岗位的必备技能。而在SQL面试中,一道出镜频率很高的题目就是行转列和列转行的问题,可以说这也是一道经典的SQL题目,本文就这一问题做以介绍分享。
luanhz
2021/06/25
7.2K0
如何在 Tableau 中对列进行高亮颜色操作?
在做数据分析时,如果数据量比较大,可以考虑使用颜色对重点关注的数据进行高亮操作,显眼的颜色可以帮助我们快速了解数据和发现问题。比如一个数据表可能会有十几到几十列之多,为了更好的看清某些重要的列,我们可以对表进行如下操作——
小马哥的牛棚
2020/08/20
5.8K0
SQL 中的行转列和列转行
行转列,列转行是我们在开发过程中经常碰到的问题。行转列一般通过CASE WHEN 语句来实现,也可以通过 SQL SERVER 的运算符PIVOT来实现。用传统的方法,比较好理解。层次清晰,而且比较习惯。 但是PIVOT 、UNPIVOT提供的语法比一系列复杂的SELECT…CASE 语句中所指定的语法更简单、更具可读性。下面我们通过几个简单的例子来介绍一下列转行、行转列问题。
玖柒的小窝
2021/11/08
5.5K0
SQL 中的行转列和列转行
SQL 找出分组中具有极值的行
你可能也遇到过这种需求:找出每个部门入职最早的员工的信息;获取每个科目最高分的学生信息;获取用户最近一次的完整登录信息。
白日梦想家
2020/07/20
1.8K0
SQL 找出分组中具有极值的行
如何批量对每一行或者每一列进行排序?
先上效果图。 (一) 批量针对每一行排序 1. 把每一行转换成列表 函数:Table.ToRows 2. 针对每一个行生成的列表进行排序 函数:List.Transform,List.Sort 3.
逍遥之
2020/03/23
3K0
SQL如何对不同表的数据进行更新
如果我们有表A和表B, 我想把我的表A的Col1内的数据更新到表B的Col1里面,那么我们怎么做呢?
繁华是客
2023/03/03
3.5K0
Element Table 动态生成列并且不同的列显示不同的样式
我们在使用表格控件时,经常需要动态生成表格的列,并且某些列要求特殊的样式(如右对齐)
tianyawhl
2020/02/25
5.3K0
[Office] 如何对Excel二维表中的所有数值进行排序
在Excel中,如果想对一个一维的数组(只有一行或者一列的数据)进行排序的话(寻找最大值和最小值),可以直接使用Excel自带的数据筛选功能进行排序,但是如果要在二维数组(存在很多行和很多列)的数据表中排序的话,就要巧用函数来实现了。
轻舞飞扬SR
2021/02/24
10.3K0
[Office] 如何对Excel二维表中的所有数值进行排序
怎么快速对DB里的所有email进行校验
由于业务上的需求,重新改写了校验email的正则表达式,同时DB里又迁移了其他数据库的数据,现在需要重新对DB里的所有email再校验一次,以排除掉不合法的email。
雨临Lewis
2022/01/11
3270
Power Query对不同标题数据进行合并的技巧
需要进行表格的合并,通常来说需要把标题给统一,这样直接通过Table.Combine函数即可进行表格数据的合并。
逍遥之
2020/07/07
10.6K2
Power Query对不同标题数据进行合并的技巧
点击加载更多

相似问题

对R中具有特定列条件的行进行计数

147

MySQL -对具有不同条件的组中的每一行进行计数()

22

对具有条件的多个列进行DISTINCT计数

15

具有两个不同列的条件的数据的条件计数公式

20

对某些日期具有相同列值的行进行计数

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文