Странно, что почти нигде нет такой штуки как LIMIT n,m BY key1, key2 тк она кажется достаточно естественной
у нас есть SAMPLE который может вообще что угодно SELECT city, state, SAMPLEID FROM stores SAMPLE WHEN state = 'WI' THEN 0.25 WHEN state = 'CA' THEN 0.5 END ORDER BY 3;
у нас есть SAMPLE который может вообще что угодно SELECT city, state, SAMPLEID FROM stores SAMPLE WHEN state = 'WI' THEN 0.25 WHEN state = 'CA' THEN 0.5 END ORDER BY 3;
Ох, нужно вникать. Оно позволяет взять каждую третью строчку, но только после сортировки ORDER BY? С первого взгляда кажется, что оно будет считаться до ORDER BY?
Ох, нужно вникать. Оно позволяет взять каждую третью строчку, но только после сортировки ORDER BY? С первого взгляда кажется, что оно будет считаться до ORDER BY?
Это все до order by, именно для сэмплирования (например в ML)
для ограничений по упорядоченной выборке у нас есть сахарок под название QUALIFY, но туда просто любую стандартную оконку пишут SELECT itemid, sumprice FROM (SELECT a1.item_id, SUM(a1.sale) FROM sales AS a1 GROUP BY a1.itemID) AS t1 (item_id, sumprice) QUALIFY RANK() OVER (ORDER BY sum_price DESC) <=100;
для ограничений по упорядоченной выборке у нас есть сахарок под название QUALIFY, но туда просто любую стандартную оконку пишут SELECT itemid, sumprice FROM (SELECT a1.item_id, SUM(a1.sale) FROM sales AS a1 GROUP BY a1.itemID) AS t1 (item_id, sumprice) QUALIFY RANK() OVER (ORDER BY sum_price DESC) <=100;
для ограничений по упорядоченной выборке у нас есть сахарок под название QUALIFY, но туда просто любую стандартную оконку пишут SELECT itemid, sumprice FROM (SELECT a1.item_id, SUM(a1.sale) FROM sales AS a1 GROUP BY a1.itemID) AS t1 (item_id, sumprice) QUALIFY RANK() OVER (ORDER BY sum_price DESC) <=100;
Вот после ТД в других СУБД мне именно квалифая недоставало особенно сильно, по крайней мере первое время
А с диска он все читает? или только размер семпла+-?
Если сэмпл по числу строк - только минимум (можно отдельно сказать with randomized allocation, тогда он дополнительно прочитает и рандомизирует), сэмпл по фракциям идёт от всего резалтсета, так что все прочитает
Если сэмпл по числу строк - только минимум (можно отдельно сказать with randomized allocation, тогда он дополнительно прочитает и рандомизирует), сэмпл по фракциям идёт от всего резалтсета, так что все прочитает