gpt4 book ai didi

mysql - MySQL中如何计算值的首字母?

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

我在 MySQL 中有一个名为“customers”的表,并带有

SELECT id, name, left(UPPER(name),1) AS letter

得到这个:

id | name   | letter 
1 John J
2 James J
3 Julia J
4 Lauren L
5 Peter P
6 Pietro P

但现在我需要计算首字母的总数

id | name   | letter | total 
1 John J 3
2 James J 3
3 Julia J 3
4 Lauren L 1
5 Peter P 2
6 Pietro P 2

我解决了它(临时)添加

(SELECT COUNT(id) FROM customers WHERE left(UPPER(name),1) = letter) AS total"

,但我的原始查询包含许多 INNER JOIN,因此,最后一个 Select 重复了内部联接和 wheres (可能是不必要的)。

有什么建议吗?

最佳答案

将第一个查询与子查询连接起来,该子查询获取每个首字母的计数。

SELECT id, name, letter, total
FROM customers AS c
JOIN (SELECT UPPER(LEFT(name, 1)) AS letter, COUNT(*) AS total
FROM customers
GROUP BY letter) AS l
ON l.letter = UPPER(LEFT(c.name, 1))

关于mysql - MySQL中如何计算值的首字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39581954/

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