使用SQL,如何才能获得重复次数超过两次的列?

时间:2014-03-06 22:16:11

标签: mysql sql

这是我尝试过的SQL请求:

SELECT COUNT(DISTINCT um.user_id)
FROM wp_usermeta um
LEFT JOIN wp_users u ON um.user_id = u.ID
LEFT JOIN wp_posts p ON u.ID = p.post_author AND p.post_status = 'publish' AND p.post_type = 'post'
WHERE p.post_date >= '2013-03-15'
AND u.user_login NOT LIKE 'LOCKED-%'
AND um.meta_key = 'wp_capabilities'
AND um.meta_value LIKE '%writers%'
AND COUNT(um.user_id) >= 2

最后一行:

AND COUNT(um.user_id) >= 2

导致一些错误。

有没有办法让um.user_id重复至少两次或更多?

1 个答案:

答案 0 :(得分:4)

由用户分组并使用having子句在每个组上应用count等聚合函数

select count(*) from
(
    SELECT um.user_id
    FROM wp_usermeta um
    LEFT JOIN wp_users u ON um.user_id = u.ID
    LEFT JOIN wp_posts p ON u.ID = p.post_author AND p.post_status = 'publish' AND p.post_type = 'post'
    WHERE p.post_date >= '2013-03-15'
    AND u.user_login NOT LIKE 'LOCKED-%'
    AND um.meta_key = 'wp_capabilities'
    AND um.meta_value LIKE '%affiliate_pay_per_publish%'
    GROUP BY um.user_id
    HAVING COUNT(*) >= 2
) alias_name