是否可以对MySQL中类似的行选择计数?

是否可以对MySQL中类似的行选择计数?,mysql,count,subquery,Mysql,Count,Subquery,我有一个非常简单的表,记录页面访问者输入的邮政编码。zipcode看起来总是像ddcc,其中D=digit,C=char。我想为每一行选择一个计数,显示有多少zipcode与该行相似 我知道我需要使用子字符串(postcode,1,4)来获取前4位数字,但我不知道如何从那里开始 表格结构(带样本数据) 我的预期输出是(如果我犯了错误,请原谅我) 但是我该怎么做呢 SELECT t1.postcode, t2.post_count FROM yourTable t1 INNER JOIN (

我有一个非常简单的表,记录页面访问者输入的邮政编码。zipcode看起来总是像ddcc,其中D=digit,C=char。我想为每一行选择一个计数,显示有多少zipcode与该行相似

  • 我知道我需要使用
    子字符串(postcode,1,4)
    来获取前4位数字,但我不知道如何从那里开始
表格结构(带样本数据)

我的预期输出是(如果我犯了错误,请原谅我)

但是我该怎么做呢

SELECT t1.postcode, t2.post_count
FROM yourTable t1
INNER JOIN
(
    SELECT SUBSTRING(postcode, 1, 4) AS code,
           COUNT(*) AS post_count
    FROM yourTable
    GROUP BY SUBSTRING(postcode, 1, 4)
) t2
    ON SUBSTRING(t1.postcode, 1, 4) = t2.code
此处演示:

此处演示:


您可以使用GROUPBY子句

SELECT postcode, COUNT(postcode) as `count`
FROM table
GROUP BY SUBSTRING(postcode, 1, 4)

您可以使用GROUPBY子句

SELECT postcode, COUNT(postcode) as `count`
FROM table
GROUP BY SUBSTRING(postcode, 1, 4)

这很好用,非常感谢!我从中学到了很多。这很好用,非常感谢!我从中学到了很多。
SELECT postcode, COUNT(postcode) as `count`
FROM table
GROUP BY SUBSTRING(postcode, 1, 4)