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

基本上,如果您查看下面的结果,我希望能够将计数分组到单个列中。这样,我可以轻松进行分页和排序。

我是新的 StackOverflow 用户,所以我无法发布图片。这是这个链接:http: //i40.tinypic.com/2wbvxci.jpg

提前致谢!

4

1 回答 1

2

从该 jpg 看起来,对于任何给定的行,只有一个计数将是非零的,因此将 更改SELECT为 have,而不是

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 回答