Как клубить все значения MySql? - PullRequest
1 голос
/ 23 января 2020

Я использую UNION ALL для объединения значений.

SELECT COUNT(*) as votesfromIndia FROM voting WHERE MobNo LIKE '91%'
UNION ALL
SELECT COUNT(*) as votesfromUS FROM voting WHERE MobNo LIKE '1%'
UNION ALL
SELECT COUNT(*) as votesfromBelgium FROM voting WHERE MobNo LIKE '32%'
UNION ALL
SELECT COUNT(*) as votesfromHK FROM voting WHERE MobNo LIKE '852%'
UNION ALL
SELECT COUNT(*) as votesfromIsrael FROM voting WHERE MobNo LIKE '972%'

Результат:

enter image description here

Но я хочу страну мудрый:

enter image description here

Поля, которые я имею: имя, мобно. Любая помощь будет оценена.

Ответы [ 3 ]

0 голосов
/ 23 января 2020

Я думаю, имя это название страны?

SELECT name as Country, COUNT(*) as votes FROM tbl_javoting group by name
0 голосов
/ 23 января 2020

Используйте выражение case для агрегации:

SELECT (CASE WHEN MobNo LIKE '91%' THEN 'India'
             WHEN MobNo LIKE '1%' THEN 'US'
             WHEN MobNo LIKE '32%' THEN 'Belgium' 
             WHEN MobNo LIKE '852%' THEN 'HK' 
             WHEN MobNo LIKE '972%' THEN 'Israel'
        END) as location,
        COUNT(*) as votes
FROM voting 
GROUP BY location;

Если вы хотите получить результаты в отдельных столбцах:

SELECT SUM(MobNo LIKE '91%') as India, 
       SUM(MobNo LIKE '1%') as US, 
       SUM(MobNo LIKE '32%') as Belgium, 
       SUM(MobNo LIKE '852%') as HK, 
       SUM(MobNo LIKE '972%') as Israel
FROM voting ;
0 голосов
/ 23 января 2020

Вы можете добавить еще один столбец к каждому union редактируемому запросу с постоянным значением, которое показывает страну, которой соответствует каждая строка:

SELECT 'India' country, COUNT(*) as votes FROM tbl_javoting WHERE nMobNo LIKE '91%'
UNION ALL
SELECT 'US', COUNT(*) FROM tbl_javoting WHERE nMobNo LIKE '1%'
UNION ALL
SELECT 'Belgium', COUNT(*) FROM tbl_javoting WHERE nMobNo LIKE '32%'
UNION ALL
SELECT 'Hong Kong', COUNT(*) FROM tbl_javoting WHERE nMobNo LIKE '852%'
UNION ALL
SELECT 'Israel', COUNT(*) FROM tbl_javoting WHERE nMobNo LIKE '972%'

Примечание: нет необходимости (или не имеет значения) давать различные имена столбцов, возвращаемых каждым union редактируемым запросом: первый запрос определяет имена столбцов для всего набора результатов.

...