SQL-запрос
group by foo
?
любая или случайная? да, какая субд?
SELECT foo, bar FROM t GROUP BY foo
mysql> select foo,bar from t group by foo;
+------+------+
| foo | bar |
+------+------+
| 1 | 10 |
| 2 | 13 |
| 3 | 15 |
+------+------+
в mysql достаточноКлево, а я думал нужна какая-нибудь агрегирующая функция для group by.
code:SELECT foo, bar FROM t GROUP BY foo
Это НЕ клево. Не надо писать говнокод только потому, что это позволяет говносубд. В ракле и мсскл, разумеется, тоже есть недокументированные фичи, которые надо знать и стоит использовать, но тут на мой взгляд совершенно не тот случай
Аргументируйте.
Это НЕ клево. Не надо писать говнокод только потому, что это позволяет говносубд.
без комментариев
В раклеПрошу прощения, букву пропустил - в Оракле. по конкретным случаям не силен, не так много работал, но уверен, что есть
в мсскл
ну, допустим, нарастающий итог
Сразу говорю, что мускуль комментировать не буду, ибо думается вопрос именно ему был посвящен. Возможности надстроек над чистым сиквелом типа PL/SQL или T-SQL - про это вообще глупо спорить, конечно, не знаю, но когда скрипт на простую вставку INSERT... VALUES... отрабатывает без ошибок, но данных не появляется (насколько я понимаю, из-за проблем кодировок - сталкивался)... ну хз, Мускуль спасет всех, особенно имея в виду отстойные бесплатные сервера типа MSSQL Express, Oracle (без поддержки) и Postgre
PS Прошу прощения, если напутал с лицензиями - не заморачивался, сам много работаю именно с MSSQL если что
отстойные бесплатные сервера типа MSSQL Express, Oracle (без поддержки) и PostgreО, да!
SELECT foo, FIRST(bar) FROM t GROUP BY foo
Только нафига? Какая-то излишняя тяга к усложнению и выебонам.
Сев, вот конкретно на этот случай мы напоролись уже. Система работает с mysql и pg. Вот на pg подобный запрос не работает.
Ну так надо уточнять, для чего конкретно пишется запрос. Во всём топике это так и не конкретизировали.
агрегатные функции, умеющие пропускать все значения, начиная с некоторого момента, думаю, будут полезны. В postgresql (где можно писать свои агрегатные функции) такой возможности нет, да и про другие субд не слышал, чтобы такое было, а жаль
В postgresql (где можно писать свои агрегатные функции) такой возможности нет, да и про другие субд не слышал, чтобы такое было, а жальВ Oracle можно
Оставить комментарий
Gaishnik
Есть таблица с полями foo и bar.create table t(foo integer, bar integer);
В выборке для каждого значения поля foo, представленного в таблице, должна быть одна запись. Соответствующее значение поля bar любое из возможных(если их несколько). Пример:
insert into t(foo,bar) values(1,101,111,122,132,143,15);
foo bar
1 10
1 11
1 12
2 13
2 14
3 15
Выборка
1 11
2 13
3 15
В голову не идет ничего приличнее, чем
select t_dist.foo, (select bar from t where foo=t_dist.foo limit 1) from (select distinct foo from t) as t_dist