LINUX.ORG.RU

[SQL] Можно ли написать запрос для cross-join?

 


0

1

Хочется странного. Выбрать декартово произведение. Ну то есть выбрать скажем некую статистику в разбивке по дням и часам сразу одним запросом, чтобы по строчке на день и в каждой строчке статистика за час.

Не могу придумать, как нарисовать такой запрос. Решение в лоб выдало N*M одноэлементных записей, а это совсем не то, что я хочу.

★★★★★

Решение в лоб выдало N*M одноэлементных записей, а это совсем не то, что я хочу.

Но это и есть cross-join, он же декартово произведение.

А как сделать такое, не скажу. Можно сумму с накоплением сделать, если база поддерживает, например - http://download.oracle.com/docs/cd/B14117_01/server.101/b10736/analysis.htm#CIHIGJII и http://www.postgresql.org/docs/8.4/interactive/tutorial-window.html

vga ★★
()
Ответ на: комментарий от vga

SELECT depname, empno, salary, avg(salary) OVER (PARTITION BY depname) FROM empsalary;

Ёпрст! Так вот как ЭТО делают белые люди! А я-то мудохался...

Xellos ★★★★★
() автор топика
Ответ на: комментарий от Xellos

Та да. В девятке там еще что-то добавили...

vga ★★
()
Ответ на: комментарий от aydar

Это же аналитические функции из оракла! Приятно, что они появились постгресе

Они теперь не из оракла, а из стандарта ;-) Потому и появились, как я понимаю

vga ★★
()

Ыыыы. Пришлось отказаться от реализации некоторых вещей из-за того, что стоит 8.3 (и будет стоять ещё долго). А на перле я уже кое-что сделал. Ага. 10к записей десять минут считаются :(

Xellos ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.