Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите составить запрос / 5 сообщений из 5, страница 1 из 1
29.03.2014, 18:32:54
    #38599895
YaZvA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос
Есть таблица 100 000 записей, список пользователей

Необходимо оптимально быстро получить статистику, а именно количество записей по нескольким параметрам:
Возраст от 0 до 10 лет, от 10 до 20 лет, от 20 до 30 лет, от 30 до 40 лет и т.д., в разрезе статусов и по 300 городам

Должно получиться, что то примерно такое:
Город №1, VIP, от 0 до 10 = 534 пользователя
Город №1, VIP, от 10 до 20 = 34 пользователя
Город №1, VIP, от 20 до 30 = 234 пользователя
Город №1, VIP, от 40 до 50 = 2 пользователя
Город №1, STD, от 0 до 10 = 54 пользователя
Город №1, STD, от 10 до 20 = 344 пользователя
Город №1, STD, от 20 до 30 = 734 пользователя
Город №1, STD, от 40 до 50 = 66 пользователя
Город №2, VIP, от 0 до 10 = 1 пользователя
Город №2, VIP, от 10 до 20 = 4 пользователя
Город №2, VIP, от 20 до 30 = 34 пользователя
Город №2, VIP, от 40 до 50 = 77 пользователя
Город №2, STD, от 0 до 10 = 11 пользователя
Город №2, STD, от 10 до 20 = 23 пользователя
Город №2, STD, от 20 до 30 = 284 пользователя
Город №2, STD, от 40 до 50 = 90 пользователя
и т.д.

Подскажите пожалуйста как это реализовать?
...
Рейтинг: 0 / 0
29.03.2014, 18:56:04
    #38599908
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос
Создать правильные индексы.
...
Рейтинг: 0 / 0
29.03.2014, 18:57:33
    #38599909
YaZvA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос
AkinaСоздать правильные индексы.

Подскажите как?
...
Рейтинг: 0 / 0
29.03.2014, 20:45:06
    #38599961
YaZvA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос
SELECT m.City,
COUNT(t1.ID) AS cnt1,
COUNT(t2.ID) AS cnt2,
COUNT(t3.ID) AS cnt3,
COUNT(t4.ID) AS cnt4,
COUNT(t5.ID) AS cnt5,
COUNT(t6.ID) AS cnt6,
COUNT(t7.ID) AS cnt7,
COUNT(t8.ID) AS cnt8,
COUNT(t9.ID) AS cnt9,
COUNT(t10.ID) AS cnt10,
COUNT(t11.ID) AS cnt11,
COUNT(t12.ID) AS cnt12,
COUNT(t13.ID) AS cnt13,
COUNT(t14.ID) AS cnt14,
COUNT(t15.ID) AS cnt15
FROM `user` AS m
LEFT JOIN `user` AS t1 ON m.id = t1.id AND m.age = 1
LEFT JOIN `user` AS t2 ON m.id = t2.id AND m.age = 2
LEFT JOIN `user` AS t3 ON m.id = t3.id AND m.age = 3
LEFT JOIN `user` AS t4 ON m.id = t4.id AND m.age = 4
LEFT JOIN `user` AS t5 ON m.id = t5.id AND m.age = 5
LEFT JOIN `user` AS t6 ON m.id = t6.id AND m.age = 6
LEFT JOIN `user` AS t7 ON m.id = t7.id AND m.age = 7
LEFT JOIN `user` AS t8 ON m.id = t8.id AND m.age = 8
LEFT JOIN `user` AS t9 ON m.id = t9.id AND m.age = 9
LEFT JOIN `user` AS t10 ON m.id = t10.id AND m.age = 10
LEFT JOIN `user` AS t11 ON m.id = t11.id AND m.age = 11
LEFT JOIN `user` AS t12 ON m.id = t12.id AND m.age = 12
LEFT JOIN `user` AS t13 ON m.id = t13.id AND m.age = 13
LEFT JOIN `user` AS t14 ON m.id = t14.id AND m.age = 14
LEFT JOIN `user` AS t15 ON m.id = t15.id AND m.age = 15
GROUP BY m.City

Как оптимизировать? Помогите!
...
Рейтинг: 0 / 0
30.03.2014, 07:40:50
    #38600059
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос
Код: sql
1.
2.
3.
4.
5.
6.
SELECT m.City, 
 ,(select COUNT(*) from `user` where city=m.city and age=1) AS cnt1, 
 ...
 ,(select COUNT(*) from `user` where city=m.city and age=15) AS cnt15, 
FROM `user` AS m
GROUP BY m.City
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите составить запрос / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]