计算每行每列的数字长度



我生成了下表:

CREATE table user (  
    user_id INT NOT NULL UNIQUE AUTO_INCREMENT,  
    user_phone_number INT,  
    user_city VARCHAR(32) NOT NULL,  
    PRIMARY KEY (user_id)
);

我被问到以下问题:每个电话号码长度的用户数(数字位数(

我尝试以下方法:

SELECT LENGTH(user_phone_number)
FROM user
WHERE user is not null
GROUP BY user_phone_number);

但是,如果有多个用户具有相同的电话号码长度,则会分几行重复它们,而不是提供每个长度的总数。请帮忙

你的 SQL 有两个问题。 最明显的是你遗漏了COUNT(). 如果你想计算一些东西,这很重要。

第二个是SELECT列和GROUP BY列不匹配。 这些应该(几乎总是(相同:

SELECT LENGTH(user_phone_number), COUNT(*)
FROM user
WHERE user_phone_number is not null
GROUP BY LENGTH(user_phone_number);

您可能希望在最后有一个ORDER BY LENGTH(user_phone_number)

相关内容

  • 没有找到相关文章

最新更新