2012-09-26 2 views
0

내 mat_likes 테이블입니다 :MySQL의 : 선택 쿼리

mat_id| yes| no 
    1 | 1 | 0 
    1 | 1 | 0 
    1 | 1 | 0 
    2 | 1 | 0 
    3 | 1 | 0 
    4 | 1 | 0 
    4 | 1 | 0 

어떻게 가장 yes = 1이 그 재료의 mat_id 선택할 수 있습니다. 결과 감산 Еxample :

  1. mat_id = 1을하기 때문에 전체 yes = 2
  2. mat_id = 3 있기 때문에 총 yes = 1
  3. mat_id = 2 있기 때문에 전체가 있기 때문에, 총 yes = 3
  4. mat_id = 4yes = 1

답변

3
SELECT mat_id,SUM(yes) yes_sum 
FROM mat_likes 
GROUP BY mat_id 
ORDER BY yes_sum DESC 

은 각 mat_id에 대해 yes의 합계를 사용하여 결과 집합을 반환하며 가장 큰 합계를 맨 위에 표시합니다!

편집 : 필드 목록

0
SELECT mat_id, SUM(yes) yes_sum 
FROM mat_likes 
GROUP BY mat_id 
ORDER BY yes_sum DESC, mat_id DESC