SQL:特定日期范围内的计数/总和列

拉胡尔

我有一张大致像这样的桌子。有数千行。

booking_date   checkin_date    ...some other columns  ....    booking_value
22-mar-2016      29-mar-2016   ...........................         $150
01-apr-2016      17-may-2016   ...........................         $500
09-apr-2016      09-apr-2016   ...........................         $222
17-apr-2016      23-apr-2016  ...........................          $75
19-apr-2016      31-july-2016 ...........................          $690
03-May-2016      07-May-2016  .............................        $301
.
.
.
.

我正在尝试计算2016年4月的每天预订数量和每天的预订价值。第二部分是计算多少笔预订的booking_date和checking_date相同。

我对SQL非常陌生。我可以在纸上提出逻辑,但似乎无法弄清楚如何继续编写代码。

戈登·利诺夫

我建议以下查询:

SELECT CAST(booking_date AS DATE), COUNT(*) as Number_of_Booking,
       SUM(CAST(booking_date AS DATE) = CAST(checkin_date AS DATE)) as count_with_same_date,
       SUM(booking_value) as booking_value
FROM t
WHERE booking_date >= '2016-04-01' AND
      booking_date < '2016-05-01'
GROUP BY CAST(booking_date AS DATE);

特别要注意的是对日期的过滤。直接比较允许MySQL使用索引。

相同日期的数字计算使用MySQL的一个不错的功能,其中布尔值在数字上下文中被视为数字。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

SQL选择特定日期范围内的生日

熊猫如何在特定日期和日期范围内的总和值之间重新采样?

MongoDB聚合函数,用于返回特定日期范围内的按天计数

SQL查询以获取特定日期范围/期间的时间范围内的记录

使用JavaScript获取日期范围内的特定日期

选择日期范围内的特定日期

Spark SQL-如何对链接到特定日期的日期范围内的值求和

SQL查找日期范围内的计数

在特定日期范围内合并Pandas DataFrame

knex:选择特定日期范围内的行

无法获取在特定日期范围内创建的工件

获取特定日期范围内的结果

两个相关表之间的SQL SELECT数据不在特定日期范围内

在特定日期范围内的Python代码中的SQL选择查询

使用jdbc在Oracle SQL中过滤特定日期范围内的数据

如何在 SQL Server 中查询特定日期范围内的数据

如何在特定日期范围内对熊猫列DataFrame中的某些值求和

如果观察值不在相邻列的特定日期范围内,我希望消除它们

SQL查询,用于查找某个日期范围内某个特定日期存在的所有记录

如何获取 SQL Server 中特定行范围内特定列的总和?

大熊猫-在特定日期范围内划分日期范围

验证我的节点的开始日期或结束日期是否在特定日期范围内

从由日期行组成的表中,如何计算日期在特定日期范围内的行数

使用两个特定日期范围内的最大记录过滤SQL表

SQL查询来计数日期范围内的项目?

在给定日期范围内每天计数设备

指定日期范围内的数字/ Excel小时计数器

使用文件名日期的特定日期范围内的Linux tar文件

如何计算日期范围内的特定日期和时间