MySQL Multiple COUNT группа - PullRequest
0 голосов
/ 16 июня 2009

У меня есть этот запрос, но я не знаю, возможно ли это сделать. По сути, я делаю подсчет и группу по каждому столбцу. Тем не менее, я хочу показать количество DESC / ASC. Поскольку это разные столбцы, могу ли я этого достичь? Вот мой запрос:

SELECT flags.ID, flags.COMMENT_ID, flags.CONTENT_ID, flags.USER_ID, flags.WALLPOST_ID, flags.FLAGGED_BY, flags.DATE_FLAGGED, flags.PROD_ID, flags.STAGE_ID, COUNT(flags.COMMENT_ID) AS comment_count, COUNT(flags.CONTENT_ID) AS content_count, COUNT(flags.WALLPOST_ID) AS wall_count, COUNT(flags.USER_ID) AS user_count FROM flags LEFT JOIN comment ON (flags.COMMENT_ID=comment.ID) LEFT JOIN content ON (flags.CONTENT_ID=content.ID) LEFT JOIN sf_guard_user_profile ON (flags.USER_ID=sf_guard_user_profile.ID) LEFT JOIN wallpost ON (flags.WALLPOST_ID=wallpost.ID) GROUP BY flags.COMMENT_ID,flags.CONTENT_ID,flags.USER_ID,flags.WALLPOST_ID ORDER BY comment_count DESC,content_count DESC,wall_count DESC,user_count DESC LIMIT 1000

В принципе, если вы посмотрите на результаты ниже, я хочу иметь возможность сгруппировать счет в один столбец. Таким образом, я могу легко разбивать на страницы и сортировать.

Я новый пользователь StackOverflow, поэтому не могу опубликовать изображение. Вот эта ссылка: http://i40.tinypic.com/2wbvxci.jpg

Заранее спасибо!

1 Ответ

2 голосов
/ 16 июня 2009

Из этого jpg видно, что только один из счетчиков будет ненулевым для любой данной строки, поэтому вместо

вместо *1002* изменим
COUNT(flags.COMMENT_ID) AS comment_count, COUNT(flags.CONTENT_ID) AS content_count, COUNT(flags.WALLPOST_ID) AS wall_count, COUNT(flags.USER_ID) AS user_count

часть, выражение, такое как

(COUNT(flags.COMMENT_ID) + COUNT(flags.CONTENT_ID) + COUNT(flags.WALLPOST_ID) + COUNT(flags.USER_ID)) AS total_count

может быть тем, что вы хотите.

...