gpt4 book ai didi

php - 如何根据输出编写mysql查询?

转载 作者:行者123 更新时间:2023-11-29 10:02:32 25 4
gpt4 key购买 nike

我的表格应该是这样的:

slno      sheetno   time_stamp
1 101 2018-05-27 11:16:58
2 103 2018-05-27 11:20:18
3 102 2018-05-27 11:24:39
4 105 2018-05-27 11:27:44
5 106 2018-05-27 11:34:03
6 107 2018-05-27 11:51:32
7 108 2018-05-27 12:41:34
8 109 2018-05-27 12:48:13
9 110 2018-05-27 12:52:40
10 111 2018-05-27 13:18:59
11 112 2018-05-27 14:13:07
12 113 2018-05-27 14:18:04
13 114 2018-05-27 14:21:12
14 115 2018-05-27 14:54:01
15 117 2018-05-27 14:55:14
16 118 2018-05-27 14:57:31
17 119 2018-05-27 15:05:30
18 120 2018-05-27 15:30:44
19 121 2018-05-27 15:46:38
20 122 2018-05-27 16:02:16
21 123 2018-05-28 11:32:10
22 124 2018-05-28 11:38:18
23 125 2018-05-28 11:49:45
24 126 2018-05-28 11:52:09
25 127 2018-05-28 12:21:00
26 128 2018-05-28 12:24:33
27 129 2018-05-28 13:04:56
28 130 2018-05-28 14:10:07
29 140 2018-05-28 14:18:47
30 141 2018-05-28 14:22:09
31 142 2018-05-28 14:28:04
32 143 2018-05-28 14:37:53
33 144 2018-05-28 15:06:27
34 145 2018-05-28 15:33:05
35 146 2018-05-28 15:35:44
36 147 2018-05-28 15:53:41
37 148 2018-05-28 16:13:16
38 149 2018-05-28 16:27:51
39 150 2018-05-28 16:38:54
40 151 2018-05-28 16:44:54

我的输出应该是这样的:

From           To            Total No of days   FN   AN
27-05-2018 28-05-2018 2 2 2

这是我的查询:

SELECT
DATE_FORMAT(MIN(time_stamp), '%Y-%m-%d') AS min,
DATE_FORMAT(MAX(time_stamp), '%Y-%m-%d') AS max,
COUNT(DISTINCT DATE(time_stamp)) AS cnt,
COUNT(CASE WHEN TIME(time_stamp) < '12:00:00' THEN 1 END) AS FN,
COUNT(CASE WHEN TIME(time_stamp) >= '12:00:00' THEN 1 END) AS AN
FROM master_tab;

“FN”、“AN”的输出应该进行分组。怎么解决这个问题呢?我尝试将 DISTINCT 放在它显示 i 值的情况前面。

最佳答案

您似乎走在正确的道路上:

SELECT
DATE_FORMAT(MIN(time_stamp), '%Y-%m-%d') AS min,
DATE_FORMAT(MAX(time_stamp), '%Y-%m-%d') AS max,
COUNT(DISTINCT DATE(time_stamp)) AS cnt,
COUNT(CASE WHEN TIME(time_stamp) < '12:00:00' THEN 1 END) AS FN,
COUNT(CASE WHEN TIME(time_stamp) >= '12:00:00' THEN 1 END) AS VA
FROM master_tab;

enter image description here

Demo

注释:

  • 要选择最小/最大日期,进行额外的日期转换是没有意义的,因为 DATE_FORMAT 已将这些值仅作为日期。
  • 对于不同日期计数也是如此;请注意,DISTINCT 不是 MySQL 中的函数,而是关键字
  • FN(早上)和VA(晚上)的条件计数,当有匹配时计数为 1,并且计数 NULL 否则。请注意,COUNT 会忽略 NULL,因此我们只计算匹配的记录。省略的 ELSE 条件默认为 NULL

关于php - 如何根据输出编写mysql查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52620021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com