2015-06-10 3 views
-1

У меня есть таблица с двумя столбцами. Колонна Seq идет от 1 до 100.Как разбить таблицу на 4 группы?

Part_No    Seq 
A23     1 
B88     2 
C34     3 
A43     4 
B48     5 
E11     6 
A87     7 
E64     8 
...TILL Seq 100 

теперь я хочу, чтобы разделить эту таблицу, как показано ниже:

Part_No_a    Part No_b   Part_No_c   Part_No_d 
A23      B88     C34     A43 
B48      E11     A87     E64 

ответ

3

Я хотел бы использовать условное агрегирование с помощью функции по модулю:

select max(case when seq % 4 = 1 then part_no end) as part_no_a, 
     max(case when seq % 4 = 2 then part_no end) as part_no_b, 
     max(case when seq % 4 = 3 then part_no end) as part_no_c, 
     max(case when seq % 4 = 0 then part_no end) as part_no_d 
from databasetable t 
group by ((seq - 1)/4); 
+0

Спасибо Гордон. Отлично работает. Мне мало любопытно, что именно делает предложение Group By? – Sam

+1

Привет, вы можете прочитать больше о GROUP BY здесь: http://www.w3schools.com/sql/sql_groupby.asp –

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