0

シナリオ

id | location_id | coordinate_type | value
 1 |           1 | lat             | 17.3111
 2 |           1 | lng             | 45.5293978
 3 |           2 | lat             | 37.3111
 4 |           2 | lng             | 21.4646422
 5 |           3 | lat             | 37.3451
 6 |           3 | lng             | 25.529648
 7 |           4 | lat             | 37.3111
 8 |           4 | lng             | 13.688902
 9 |           5 | lat             | 37.3111
10 |           5 | lng             | 22.523535

クエリ結果:

location_id | lng            | lat
          1 | 45.5293978     | 17.3111
          2 | 21.4646422     | 37.3111
          3 | 25.529648      | 37.3451
          4 | 13.688902      | 37.3111
         ...

最高のパフォーマンスでその結果を得るにはどうすればよいですか?

4

2 に答える 2

2

これを試して

select location_id
,MAX(CASE WHEN coordinate_type = 'lng' THEN value ELSE NULL END) AS 'lng'
, MAX(CASE WHEN coordinate_type = 'lat' THEN value ELSE NULL END) AS 'lat'
from Table1
GROUP BY location_id

SQL フィドルのデモ

于 2013-08-28T15:31:12.453 に答える