2012-01-18 106 views
2
SELECT id,name,SUM(`lsa`) AS lst FROM 
    table_a AS sn, 
    table_b AS fb 
WHERE sn.uid=fb.uid 
    AND COUNT(`lsa`)=6 
GROUP BY sn.uid 
ORDER BY SUM(`lsa`) 

我有一個像這樣的查詢,顯然AND COUNT(lsa)=6位是無效的語法。我很迷茫。COUNTing有多少行GROUPED BY

我想實現的是一個清單,由lsa總和下令,由uid分組,只有有6項爲UID,即在「組」。我該怎麼做?

回答

3

它是有效的聚集過濾,但需要進入HAVING條款,而不是WHERE所以使用

SELECT id, 
     name, 
     SUM(`lsa`) AS lst 
FROM table_a AS sn 
     JOIN table_b AS fb 
     ON sn.uid = fb.uid /*Using Explicit Join syntax*/ 
GROUP BY sn.uid,   /*And avoiding MySQL GROUP BY extension*/ 
      id, 
      name 
HAVING COUNT(`lsa`) = 6 
ORDER BY SUM(`lsa`) 

代替。

+0

'你可以在10分鐘內接受答案' – 2012-01-18 17:54:26