2017-02-09 71 views
0

我可以得到,因爲GROUP BY語句的時候使用下面的MySQLMySQL的返回計數,並返回該元素的所有出現

SELECT COUNT(*) AS count 
FROM example 
GROUP BY example.value 

的問題是發生的每個元素數量的計數, ,重複的記錄將不會以其COUNT值返回。

IE我需要這樣的:

  1. 蘋果 - 2
  2. 蘋果 - 2
  3. 桔子 - 1
  4. 香蕉 - 3
  5. 香蕉 - 3
  6. 香蕉 - 3

但是我得到th是:

  1. 蘋果 - 2個
  2. 橙子 - 1個
  3. 香蕉 - 3

任何想法如何可以這樣做?我想到的是某種形式的加入,但我不能找出適當的方式表比較本身

回答

2

您可以使用JOIN

select a.*, b.cnt 
from example a 
join (
    select value, count(*) cnt 
    from example 
    group by value 
    ) b on a.value = b.value; 
2
SELECT e.value, t.count 
FROM example e 
LEFT JOIN (SELECT value, COUNT(*) AS count 
    FROM example 
    GROUP BY example.value) t 
ON e.value = t.value;