0

次の表から、バスによる汚染が最も多いのはどの都市かを判断する必要があります。

ルート:

route_id | departure_city | destination_city | bus_type | times_per_day
 1         2                1                  1          4
 2         1                3                  2          2
 3         3                1                  2          1
 4         1                2                  1          5
 5         1                3                  1          3

バスタイプ:

bus_type_id | pollution_output
 1             3
 2             7

たとえば、都市 2 は bus_type 1 に 1 日に 4 回 (route_id 1)、bus_type 1 に 1 日に 5 回 (route_id 4) さらされ、1 日あたり 27 の汚染出力が発生します。しかし、基本的にはすべての都市についてこれを計算し、汚染が最大の都市を返す必要があります。どうすればよいでしょうか?

4

1 に答える 1

1
SELECT city, sum(pollution) AS total_pollution
FROM (
   SELECT r.depature_city AS city
         ,b.pollution_output * r.times_per_day AS pollution
   FROM   routes   r
   JOIN   bustypes b ON b.bus_type_id = r.bus_type

   UNION ALL
   SELECT r.destination_city
         ,b.pollution_output * r.times_per_day
   FROM   routes   r
   JOIN   bustypes b ON b.bus_type_id = r.bus_type
   ) AS sub
GROUP  BY city
于 2013-03-18T21:53:24.850 に答える