gpt4 book ai didi

mysql - mysql 中特定值第一次出现

转载 作者:行者123 更新时间:2023-11-30 01:35:25 25 4
gpt4 key购买 nike

我错过了一层复杂性,我认为它不相关,但看起来就是这样,因为 MIN() 建议似乎不适用于此。

我有一个看起来像这样的表格:

col-1 | col-b | col-c | col-d
----------------------------------
mhm1 | a | 09:20 | 2013-09-21
mhm1 | b | 09:21 | 2013-09-20
mhm1 | c | 09:22 | 2013-09-19
mhm1 | c | 09:23 | 2013-09-18
mhm1 | d | 09:24 | 2013-09-19
mhm2 | a | 09:25 | 2013-09-21
mhm2 | c | 09:26 | 2013-09-20
mhm2 | d | 09:27 | 2013-09-19
mhm2 | c | 09:28 | 2013-09-18

我想要一个查询,该查询返回每个唯一的 col-1 的第一行,其中 col-b = 'c'。

例如

col-1 | col-b | col-c | col-d
---------------------------------
mhm1 | c | 09:23 | 2013-09-18
mhm2 | c | 09:28 | 2013-09-18

实现此目的合适的 SQL 请求是什么?我尝试过:

SELECT col-a, col-b, min(col-c), min(col-d) FROM MY TABLE
WHERE col-b = 'c'
GROUP BY col-a
ORDER BY col-c ASC

但我得到:

col-1 | col-b | col-c | col-d
---------------------------------
mhm1 | c | 09:22 | 2013-09-18
mhm2 | c | 09:26 | 2013-09-18

这不是我想要的。

谢谢

最佳答案

DROP TABLE IF EXISTS my_test;

CREATE TABLE my_test (col1 CHAR(4) NOT NULL,colb CHAR(1) NOT NULL,colc TIME NOT NULL,PRIMARY KEY(col1,colb,colc));

INSERT INTO my_test VALUES
('mhm1','a','09:20:00'),
('mhm1','b','09:21:00'),
('mhm1','c','09:22:00'),
('mhm1','c','09:23:00'),
('mhm1','d','09:24:00'),
('mhm2','a','09:25:00'),
('mhm2','c','09:26:00'),
('mhm2','d','09:27:00'),
('mhm2','c','09:28:00');

SELECT x.*
FROM my_test x
JOIN
( SELECT col1,colb,MIN(colc) min_colc FROM my_test GROUP BY col1,colb) y
ON y.col1 = x.col1
AND y.colb=x.colb
AND y.min_colc = x.colc
WHERE x.colb = 'c';
+------+------+----------+
| col1 | colb | colc |
+------+------+----------+
| mhm1 | c | 09:22:00 |
| mhm2 | c | 09:26:00 |
+------+------+----------+

关于mysql - mysql 中特定值第一次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16963647/

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