gpt4 book ai didi

mysql - 当 B 列和 C 列唯一时如何不选择重复列 A 的行

转载 作者:行者123 更新时间:2023-11-29 17:50:20 26 4
gpt4 key购买 nike

不确定如何在标题中正确解释这一点,我不妨显示数据。

我有一张 table ( SQLFIDDLE ):

+----+----------+------------+
| id | session | updated |
+----+----------+------------+
| a | c9c9c9c9 | 2018-22-03 |
| a | c9c9c9c9 | 2018-21-03 |
| a | s9s9s9s9 | 2018-20-03 |
| a | s9s9s9s9 | 2018-19-03 |
| b | s8s8s8s8 | 2018-05-02 |
| b | s8s8s8s8 | 2018-04-02 |
| c | s7s7s7s7 | 2018-03-01 |
| c | s7s7s7s7 | 2018-02-01 |
| d | s2s2s2s2 | 2018-01-01 |
+----+----------+------------+

目前我正在使用此查询

SELECT id, 
session,
Max(updated) AS updated_at
FROM reports
GROUP BY id,
session
ORDER BY updated_at DESC
LIMIT 4

这是SQLFIDDLE: http://sqlfiddle.com/#!9/3c5272/1

这给了我这个,但我不想要第 2 行,因为它是重复的 ID

+----+----------+------------+
| id | session | updated |
+----+----------+------------+
| a | c9c9c9c9 | 2018-22-03 |
| a | s9s9s9s9 | 2018-20-03 |
| b | s8s8s8s8 | 2018-05-02 |
| c | s7s7s7s7 | 2018-02-01 |
+----+----------+------------+

我想要这样的结果

+----+----------+------------+
| id | session | updated |
+----+----------+------------+
| a | c9c9c9c9 | 2018-22-03 |
| b | s8s8s8s8 | 2018-05-02 |
| c | s7s7s7s7 | 2018-02-01 |
| d | s2s2s2s2 | 2018-01-01 |
+----+----------+------------+

我试过了

SELECT a.id,
(SELECT session
FROM reports AS b
WHERE b.id = a.id
LIMIT 1),
Max(a.updated) AS updated_at
FROM reports AS a
GROUP BY a.id
ORDER BY updated_at DESC
LIMIT 4

但是我的 MYSQL 在 CPU 负载为 100% 时不断超时,目前该表中有大约 328745 行以上。

最佳答案

使用 SELECT 过滤重复值时使用“DISTINCT”。访问此link了解有关 DISTINCT 的更多信息。

关于mysql - 当 B 列和 C 列唯一时如何不选择重复列 A 的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49418974/

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