MySQL 按邮政编码分组

标签 mysql group-by zipcode

我有一个保存订阅信息的表。有些邮寄邮政编码是 5 位数字,有些是 9 位(55025 与 55025-4056)。我想运行一个查询来计算每个邮政编码的订阅总数,但需要将 9 位数字与匹配的 5 位数字分组。

SELECT zip, COUNT(id) AS total FROM subscriptions WHERE status = 'A' GROUP BY zip

但显然它会将 55025 和 55025-4056 读作两个不同的邮政编码。如果 55025 有 100 条记录,55025-4056 有 10 条记录,我希望结果显示 55025 = 110 条记录。如何执行此查询以按邮政编码的前 5 位数字进行分组?

谢谢

最佳答案

SELECT LEFT(zip,5) zip, COUNT(id) AS total
FROM subscriptions WHERE status = 'A'
GROUP BY LEFT(zip,5); 

关于MySQL 按邮政编码分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9438661/

相关文章:

sql - 有没有更好的方法来过滤每个组中存在的数据?

c# - 给定坐标,我如何获得 10 英里半径内的所有邮政编码?

google-maps - 如何在Google Maps API中使用邮政编码代替Lat和Lng

mysql - 需要帮助使用 SELECT DISTINCT 结果搜索 MySQL 数据库

php - innodb中的并发

php - Eloquent 中的连接查询按相关表排序不太有效

python - pandas groupby 多个函数

PHP+MySQL,按类别输出结果

ruby-on-rails - 使用 Rails 验证美国邮政编码格式

mysql - 过滤掉其他表中引用的行的有效方法