2009-10-08 2 views
0

У меня есть таблица, которая выглядит, как показано нижеSql Query Group диапазон номеров с низким и Высоким-х

street_id | address_number | address_direction | address_street | address_type ... 
---------------------------------------------------------------------------------- 
1   | 121   | W     | Fake   | St 
1   | 131   | W     | Fake   | St 
1   | 200   | W     | Fake   | St 
2   | 321   | N     | Fake   | St 
2   | 131   | N     | Fake   | St 
2   | 500   | N     | Fake   | St 

Может кто-нибудь помочь мне придумать с запросом, который помог бы мне отобразить данные, как показано ниже?

street_id | address_low_range | address_high_range | address_direction | address_street | address_type ... 
---------------------------------------------------------------------------------- 
1   | 121    | 200    | W     | Fake   | St 
2   | 131    | 500    | N     | Fake   | St 

Заранее спасибо

ответ

2

вы можете использовать Min (address_number) и Макс (address_number) для выбора низких и высоких частот, а затем группу по street_id, address_direction, address_street, address_type:

SELECT 
street_id, 
Min(address_number) as address_low_range, 
Max(address_number) as address_high_range, 
address_direction, 
address_street, 
address_type 
FROM table_name 
GROUP BY street_id, address_direction, address_street, address_type 
+0

doh. это было просто. благодаря – zSynopsis

2
select 
     street_id, 
     direction, 
     min(address_number) as address_low_range, 
     max(address_number) as address_high_range 
     address_street, 
     address_type 
from mytable 
group by address_id, address_street, direction; 

Кстати, почему address_street и address_type в вашей таблице, когда ПРЕДПОЛОЖИТЕЛЬНО, это то, что street_id ссылается на?

1

Off верхней части моей головы:

select street_id, min(address_number), max(address_number), address_direction 
from addresses 
group by street_id, address_direction 
1

вы можете проверить этот запрос

select street_id, MIN(address_number) add_low, 
MAX(address_number) add_high FROM your_table 
Group by street_id 
1

Используйте MIN() и MAX() совокупные функции на столбцах, в которых вы хотите мин или макс. Не забудьте включить другие столбцы в пункт GROUP BY.

Смежные вопросы