2017-02-13 4 views
1

я сгенерировал следующую таблицу:Число Длины цифра на колонку на ряде

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

, но если есть несколько пользователей с одной и той же длины номера телефона он повторяет их в несколько рядов вместо обеспечения Итого по длине. Пожалуйста, помогите

ответ

2

У вас есть две проблемы с вашим 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) в конце.

+0

Большое спасибо, это решило мою проблему, я просто изменил пользователя WHERE для WHERE user_phone_number. –

Смежные вопросы