gpt4 book ai didi

mysql - 使用 SQL 聚合文本数据

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

我有以下数据:

Name  | Condition  
Mike | Good
Mike | Good
Steve | Good
Steve | Alright
Joe | Good
Joe | Bad

我想写一个if语句,如果Bad存在,我想把名字归类为Bad。如果Bad不存在但Alright存在,则分类为Alright。如果仅存在 Good,则归类为 good

所以我的数据会变成:

Name  | Condition  
Mike | Good
Steve | Alright
Joe | Bad

这在 SQL 中可能吗?

最佳答案

如果您首先创建一个将Condition 映射到rank 数字的表,Access 查询会很容易。

Condition rank
--------- ----
Bad 1
Alright 2
Good 3

然后 GROUP BY 查询将为您提供每个 Name 的最低 rank:

SELECT y.Name, Min(c1.rank) AS MinOfrank
FROM
[YourTable] AS y
INNER JOIN conditions AS c1
ON y.Condition = c1.Condition
GROUP BY y.Name;

如果要显示这些排名的Condition 字符串,请再次加入conditions 表:

SELECT sub.Name, sub.MinOfrank, c2.Condition
FROM
(
SELECT y.Name, Min(c1.rank) AS MinOfrank
FROM
[YourTable] AS y
INNER JOIN conditions AS c1
ON y.Condition = c1.Condition
GROUP BY y.Name
) AS sub
INNER JOIN conditions AS c2
ON sub.MinOfrank = c2.rank;

对于那些条件字段的索引,性能应该没问题。

在我看来,这种方法也适用于问题中标记的其他数据库(MySQL 和 SQL Server)。

关于mysql - 使用 SQL 聚合文本数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31009389/

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