metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2010-09-03 08:39 am

Поведение запроса

Народ, а гляньте в разных СУБД, что покажет такой запрос?
select rand() as a from some_table order by a

Т.е. рандом выбранный из таблицы с несколькими полями и сортировкой по этому же полю. В Firebird, судя по результатам, оно два раза считает рандом - один раз для показа, второй для сортировки.

PS: Firebird не сортирует даже такое:
select * from (select rand() as a from some_table) order by a
Ленивые вычисления без мемоизации и проверки на побочные эффекты у них там что ле.

[identity profile] honeyman.livejournal.com 2010-09-03 08:52 am (UTC)(link)
PostgreSQL 8.4.4:
0.0628892714157701
0.272270571440458
0.291923750657588
0.433800493832678
0.604293675161898
0.610119560733438
0.694576141890138
0.755003112833947

SQLite 3.7.2:
-3423746492705505593
-1151830632242196188
-4895362827993576501
5130108326149233244
3980505363568550580
3074617528699226538
-7403263901897847004
6293708936006779411
-2917952153408722454
-4668168712340694905
665594589023414259
-8204040720926507797
9128407528424789357
4885620583458867990
-254562513299929267
2635112400891454653

[identity profile] craneop.livejournal.com 2010-09-03 08:54 am (UTC)(link)
MySQL, PostgreSQL :) Отлично. Сча выявим все недобазы.