gpt4 book ai didi

mysql - 按列值的 LIKE 分组

转载 作者:可可西里 更新时间:2023-11-01 06:40:24 25 4
gpt4 key购买 nike

给定这样一个假设的查询:

SELECT COUNT(*)
FROM subscriptions
GROUP by plan_type

还有一个类似于下表的表格:

+----+-----------------------+-------------+--+
| id | plan_type | customer_id | |
+----+-----------------------+-------------+--+
| 1 | gold_2017 | 523 | |
| 2 | gold_2016_recurring | 2300 | |
| 3 | silver_2016 | 234 | |
| 4 | silver_2017_recurring | 2593 | |
| 5 | platinum_recurring | 4123 | |
+----+-----------------------+-------------+--+

期望的结果:

+-------+----------+
| count | type |
+-------+----------+
| 2 | gold |
| 2 | silver |
| 1 | platinum |
+-------+----------+

有没有什么方法可以使用 GROUP BY 和 LIKE 语句(LIKE “silver”、LIKE “gold”、LIKE “platinum”等)对这些条目进行分组?

最佳答案

你可以使用case:

SELECT (CASE WHEN plan_type LIKE 'silver%' THEN 'silver'
WHEN plan_type LIKE 'gold%' THEN 'gold'
WHEN plan_type LIKE 'platinum%' THEN 'platinum'
END) as plan_grp, COUNT(*)
FROM subscriptions
GROUP by (CASE WHEN plan_type LIKE 'silver%' THEN 'silver'
WHEN plan_type LIKE 'gold%' THEN 'gold'
WHEN plan_type LIKE 'platinum%' THEN 'platinum'
END);

一些数据库允许您在 GROUP BY 中使用列别名。

关于mysql - 按列值的 LIKE 分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42911251/

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