1

MySQL には (phpMyAdmin を使用して) 次のような 2 つのテーブルがあります。

Country    Total Minutes
USA        100
USA        90
Canada     60
Mexico     80
UK         90
France     70
France     10
Germany    10

表 2 では、次のことを行う必要があります。

Region           Total Minutes
North America    USA+USA+Canada+Mexico Mins
Europe           UK+France+France+Germany Mins

行をクエリの結果にする方法はありますか?

4

2 に答える 2

3

表 1 に地域列が必要です。

SELECT region, SUM(`Total Minutes`)
FROM timespent
GROUP BY region;

または別のregion <-> countryテーブル:

SELECT region, SUM(`Total Minutes`)
FROM myregions r
INNER JOIN timespent t USING (country)
GROUP BY r.region;

リージョン テーブルは次のようになります。

region        | country
--------------+--------
North America | USA
North America | Mexico

データベースで何も変更できない場合は、Andomar のソリューションを見てください:)

于 2012-06-06T07:51:20.987 に答える
2

サブクエリで国を地域に変換できます。次に、外側のクエリgroup byでリージョンを指定できます。

select  Region
,       sum(TotalMinutes) as TotalMinutes
from    (
        select  case country
                when 'USA' then 'North America'
                when 'France' then 'Europe'
                end as Region
        ,       TotalMinutes
        from    YourTable
        ) as SubQueryAlias
group by
        Region
于 2012-06-06T07:50:26.250 に答える