MySQL 计算具有相同值的行数
MySQL count rows with same values
我一直在寻找,但没有找到我要找的东西。
这就是我所拥有的:
SELECT user_email, post_type
FROM `wp_users`
INNER JOIN `wp_posts` ON wp_users.id = wp_posts.post_author
WHERE post_type LIKE '%topic%'
OR post_type LIKE '%reply%
它带来了我需要的东西:
我需要一个查询来显示用户的电子邮件以及他发表了多少主题和回复 (BBPRESS)。
问题是它带来了所有这些,但没有告诉我用户做了多少主题/回复。
这就是它带来的:
http://i.stack.imgur.com/sMymU.png
有什么方法可以在它重要的地方添加第 3 列吗?
试试这个:
SELECT user_email,
SUM(CASE WHEN post_type LIKE '%topic%' THEN 1 ELSE 0 END) AS Topics,
SUM(CASE WHEN post_type LIKE '%reply%' THEN 1 ELSE 0 END ) AS Replies
FROM `wp_users`
INNER JOIN `wp_posts` ON wp_users.id = wp_posts.post_author
GROUP BY user_email
条件聚合:
SELECT user_email,
SUM(CASE WHEN post_type LIKE '%reply%' THEN 1 ELSE 0 END) AS Replies,
SUM(CASE WHEN post_type LIKE '%topic%' THEN 1 ELSE 0 END) AS Topics
FROM `wp_users`
INNER JOIN `wp_posts` ON wp_users.id = wp_posts.post_author
WHERE post_type LIKE '%topic%' OR post_type LIKE '%reply%'
GROUP BY user_mail
我一直在寻找,但没有找到我要找的东西。 这就是我所拥有的:
SELECT user_email, post_type
FROM `wp_users`
INNER JOIN `wp_posts` ON wp_users.id = wp_posts.post_author
WHERE post_type LIKE '%topic%'
OR post_type LIKE '%reply%
它带来了我需要的东西: 我需要一个查询来显示用户的电子邮件以及他发表了多少主题和回复 (BBPRESS)。
问题是它带来了所有这些,但没有告诉我用户做了多少主题/回复。 这就是它带来的: http://i.stack.imgur.com/sMymU.png 有什么方法可以在它重要的地方添加第 3 列吗?
试试这个:
SELECT user_email,
SUM(CASE WHEN post_type LIKE '%topic%' THEN 1 ELSE 0 END) AS Topics,
SUM(CASE WHEN post_type LIKE '%reply%' THEN 1 ELSE 0 END ) AS Replies
FROM `wp_users`
INNER JOIN `wp_posts` ON wp_users.id = wp_posts.post_author
GROUP BY user_email
条件聚合:
SELECT user_email,
SUM(CASE WHEN post_type LIKE '%reply%' THEN 1 ELSE 0 END) AS Replies,
SUM(CASE WHEN post_type LIKE '%topic%' THEN 1 ELSE 0 END) AS Topics
FROM `wp_users`
INNER JOIN `wp_posts` ON wp_users.id = wp_posts.post_author
WHERE post_type LIKE '%topic%' OR post_type LIKE '%reply%'
GROUP BY user_mail