Scott Rowley
Scott Rowley

Reputation: 484

Mysql Count per column

I have the following query:

SELECT a.feeder_id, b.feeder_pr
FROM authors_article_feeders a
LEFT JOIN feeders b ON b.id = a.feeder_id
WHERE website_id =1
LIMIT 0 , 30

which results in:

feeder_id   feeder_pr
18          2
18          2
18          2
18          2
32          6

What I need is to modify the above query so that it will manipulate this data so that the result would end up with a count of each feeder_pr, so in this case the result would be:

feeder_pr   count
2           4
6           1

Any assistance is appreciated. If you have time please describe your solution so that I can learn from it while I'm at it.

Everything I've tried has ended in inaccurate results, usually with just one row instead of the expected 2.

Upvotes: 0

Views: 3831

Answers (2)

Bohemian
Bohemian

Reputation: 425398

SELECT b.feeder_pr, count(a.feeder_id) as count
FROM authors_article_feeders a
LEFT JOIN feeders b ON b.id = a.feeder_id
WHERE website_id =1
GROUP BY 1

Upvotes: 0

Justin Pihony
Justin Pihony

Reputation: 67135

You just need to add a GROUP BY And, you would not even need the joins

SELECT b.feeder_pr, COUNT(b.feeder_pr)
FROM feeders b 
GROUP BY b.feeder_pr

Upvotes: 4

Related Questions