【问题标题】:Count Length of Digits Per Column Per Row计算每列每行的数字长度
【发布时间】:2017-02-13 02:08:19
【问题描述】:

我生成了下表:

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);

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

【问题讨论】:

    标签: mysql sql database variable-length


    【解决方案1】:

    您的 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) 结尾。

    【讨论】:

    • 非常感谢,这解决了我的问题,我只是将 WHERE 用户更改为 WHERE user_phone_number。
    猜你喜欢
    • 1970-01-01
    • 2018-10-03
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多