2013-06-23 5 views
0

Я хочу выполнить определенный запрос, и мне может понадобиться помощь. С одной стороны, он хочет суммировать подсчеты первых 100 пользователей, но затем я хочу разделить его на количество всех строк таблицы1. Но как я могу это сделать? Я не могу использовать другой счет в выражении Select из-за группы.Запрос на прием с большим количеством отсчетов

From(
SELECT count(1) AS count FROM table1 
GROUP BY Username 
ORDER BY count DESC limit 100 
) r 
Select sum(r.count)/?(Amount of all rows of table1) 
+1

Мне не совсем ясно, каким будет предполагаемый результат для вашего запроса. Не могли бы вы добавить некоторые примерные данные и ожидаемый результат? Благодарю. –

ответ

0

напишите два запроса один, считая с лимитом, а другой без. присоединитесь к ним без предложения «on» и выполните разделение.

+0

Привет, я Allready сделал это с: SELECT COUNT (*), сумма (b.count) в качестве счета от table1 е присоединиться к ( ВЫБРАТЬ имя пользователя, COUNT (*) AS отсчитываются от table1 группы по имени пользователя заказа по кол предел убывание 100000 ) б Но ее не работает – user2426139

+0

должно быть что-то вроде этого: выберите сумму (counter_per_user) в sum_of_100_counts, total_counter из (выберите отсчет (\ *) total_counter из table1) объединения (выберите имя пользователя, граф (\ *) counter_per_user из группы table1 по имени пользователя 100) b группа по total_counter В b у вас есть счет для первого 100 пользователей. У вас есть общий счетчик. После присоединения для каждого пользователя у вас есть свой счет и общий счетчик, а затем вы суммируете первые 100 счетчиков и имеете общее количество – dimamah

+0

большое спасибо за вашу помощь – user2426139