gpt4 book ai didi

mysql - 根据状态查询唯一记录

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

我需要帮助编写 SQL 查询以根据状态查找记录。我使用此查询创建了一个表:

CREATE TABLE inglogs (id int, mobileno int(10), status varchar(10));
INSERT INTO inglogs (id, mobileno, status)
VALUES
(1, 1234, 'fail'),
(2, 1234, 'fail'),
(3, 1234, 'success'),
(4, 2345, 'success'),
(5, 2345, 'success'),
(6, 4326, 'fail'),
(7, 4327, 'success')

我想从上表中查询并获取不同的 mobileno,如 1234,2345,4326,4327 及其状态,如果该 mobileno 成功,它应该返回该记录id 和状态,如果任何移动设备都没有成功(在我的例子中是 4326),那么这也应该在执行的查询中可见。

例如我想要这样的东西:

+---+  +--------+  +----------+
|id | |mobileno| | status |
+---+ +--------+ +----------+
|3 | | 1234 | | success |
|5 | | 2345 | | success |
|6 | | 4326 | | fail |
|7 | | 4327 | | success |
+---+ +--------+ +----------+

最佳答案

您想要一个带有条件的聚合:

select max(id) as id, mobileno,
(case when sum(status = 'success') > 0 then 'success' else 'fail' end) as status
from inglogs
group by mobileno

参见sqlfiddle

http://sqlfiddle.com/#!2/e71e7/3

关于mysql - 根据状态查询唯一记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17167078/

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