0

この質問がありますが、これが可能かどうかわかりません。基本的に、私は各列ごとにカウントとグループ化を行っています。ただし、数の 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

基本的に、以下の結果を見ると、カウントを 1 つの列にグループ化できるようにしたいと考えています。そうすれば、ページネーションとソートを簡単に行うことができます。

私は新しい StackOverflow ユーザーなので、画像を投稿できません。このリンクは次のとおりです。http://i40.tinypic.com/2wbvxci.jpg

前もって感謝します!

4

1 に答える 1

2

その jpg から、任意の行でカウントの 1 つだけが非ゼロになることがわかりますSELECT

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

あなたが望むものかもしれません。

于 2009-06-15T23:45:28.600 に答える