如何计算结果集中每种记录的计数

时间:2011-09-18 21:06:39

标签: mysql sql database database-design

我有一个SQL查询,它产生一个结果集,如下所示:

(SELECT dv.venue as venue, pglr.users_oauth_uid as user_id, pgl.date as guest_list_date
    FROM promoters_guest_lists pgl
    JOIN users_promoters_guest_list_authorizations upgla 
    ON pgl.users_promoters_guest_list_authorizations_id = upgla.id
    JOIN promoters_guest_lists_reservations pglr
    ON pgl.id = pglr.promoters_guest_lists_id
    JOIN promoters_venues pv
    ON pv.id = upgla.promoters_venues_id
    JOIN data_venues dv
    ON dv.id = pv.venue_id
    WHERE upgla.deactivated = 0)

    UNION ALL

    (SELECT dv.venue as venue, pglre.oauth_uid as user_id, pgl.date as guest_list_date
    FROM promoters_guest_lists pgl
    JOIN users_promoters_guest_list_authorizations upgla 
    ON pgl.users_promoters_guest_list_authorizations_id = upgla.id
    JOIN promoters_guest_lists_reservations pglr
    ON pgl.id = pglr.promoters_guest_lists_id
    JOIN promoters_guest_lists_reservations_entourages pglre
    ON pglr.id = pglre.promoters_guest_lists_reservations_id
    JOIN promoters_venues pv
    ON pv.id = upgla.promoters_venues_id
    JOIN data_venues dv
    ON dv.id = pv.venue_id
    WHERE upgla.deactivated = 0)
    ORDER BY 1

Estate  504405294   2011-08-30
Estate  504405294   2011-09-20
Estate  504405294   2011-09-19
Estate  504677586   2011-08-30
Estate  100002624783324 2011-08-30
Estate  100002624783324 2011-09-20
Estate  1451950133  2011-09-19
Estate  1634269784  2011-09-19
Estate  100002624783324 2011-09-19
Royale  504405294   2011-08-28
Royale  504405294   2011-09-04
Royale  100002624783324 2011-08-28
Royale  1634269784  2011-09-04

我想知道是否可以为第一列中的每个值返回第一列中等于某个值的所有记录的简单计数。总的来说,我预计第一列中会有6个唯一值,但在查询执行之间可能会有所不同。

1 个答案:

答案 0 :(得分:1)

SELECT venue, COUNT(*) FROM (YOUR_QUERY_HERE) t GROUP BY t.venue;

就是这样。

相关问题