2012-01-16 4 views
0

다른 시장에서 여러 제품 판매를하고 있으며 각 제목에 대해 합계를 계산해야합니다. 시작하려면 :GROUP BY 문을 사용하여 행 합계

mysql> SELECT title, partner_share_currency, us_earnings_usd, cad_earnings_cad 
     FROM raw_financials WHERE title LIKE "%Gamers%"; 
+--------+------------------------+-----------------+------------------+ 
| title | partner_share_currency | us_earnings_usd | cad_earnings_cad | 
+--------+------------------------+-----------------+------------------+ 
| Gamers | USD     |   3.2500 |   0.0000 | 
| Gamers | CAD     |   0.0000 |   4.0000 | 
| Gamers | USD     |   4.5000 |   0.0000 | 
+--------+------------------------+-----------------+------------------+ 

이것은 내가 현재 제목은 GROUP BY를 얻기 위해 무엇을하고 무엇을 : 당신이 볼 수 있듯이

mysql> SELECT title, us_earnings_usd, cad_earnings_cad 
     FROM raw_financials WHERE title LIKE "%Gamers%" GROUP BY title; 
+--------+-----------------+------------------+ 
| title | us_earnings_usd | cad_earnings_cad | 
+--------+-----------------+------------------+ 
| Gamers |   3.2500 |   0.0000 | 
+--------+-----------------+------------------+ 

, 그것은 값 행을 합산하지 않습니다. 나는 그것이 값 행을 요약하도록 SELECT 문을 바꿀 것 어떻게 나를주는 :

+--------+-----------------+------------------+ 
| title | us_earnings_usd | cad_earnings_cad | 
+--------+-----------------+------------------+ 
| Gamers |   7.7500 |   4.0000 | 
+--------+-----------------+------------------+ 
+2

'group by' 절이 합산되지 않습니다. 그들은 단지 집계 함수에서 사용하기 위해 어떤 행을 '축소'해야하는지 말합니다. 'sum()'함수 (또는 다른 집계 함수)가 적용되어야하는 필드를 알려줘야합니다. –

답변

2

시도 무언가 같이 :

mysql> SELECT title, SUM(us_earnings_usd) AS us_earnings_usd, SUM(cad_earnings_cad) AS cad_earnings_cad 
     FROM raw_financials WHERE title LIKE "%Gamers%" GROUP BY title; 

SUM 각 그룹에서 작동하는 함수 때를 귀하의 진술에 그 GROUP BY 조항이 있습니다. 더 비슷한 기능을 보려면 MySQL aggregate functions을 참조하십시오.

+1

제목으로 그룹화하고 비 열 함수 ('partner_share_currency')를 어떻게 선택할 수 있습니까? – gdoron

+0

이 질문은 곧바로 복사되어 합계 함수에 추가되었습니다. OP는 아마도 예제에서 볼 수 있듯이 결과를 얻기 위해'partner_share_currency'에 의해 그룹화해야 할 것입니다. –

+1

지적 해 주셔서 고마워요, 그건 실수 였어요. – David542

3

행을 합산하려면 집계 SUM()이 필요합니다. GROUP BY 만 있습니다. MySQL은 단지 title 다른 대부분의 RDBMS는 GROUP BY의 다른 비 집계 열을 표시하도록 요구합니다 GROUP BY 절에 포함 할 수 있도록 허용 할 것을

SELECT 
    title, 
    partner_share_currency, 
    SUM(us_earnings_usd) AS usd, 
    SUM(cad_earnings_cad) AS cad 
FROM raw_financials 
WHERE title LIKE '%Gamers%' 
GROUP BY title, partner_share_currency 

참고. 여기에 구체적으로는 partner_share_currency