Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите разбить на группы
|
|||
|---|---|---|---|
|
#18+
Добрый день! Пусть есть таблица Код: sql 1. 2. 3. 4. , где code - идентификатор элемента(fk), code - поле, которое задает сортировку. Идем в порядке по полю ord, и если текущее значение code отличается от предыдущего, то увеличиваем номер группы. Т.е. на выходе должны получить: Код: plaintext 1. 2. 3. 4. 5. 6. Есть элегантное решение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 10:55 |
|
||
|
Помогите разбить на группы
|
|||
|---|---|---|---|
|
#18+
__Avenger__Есть элегантное решение?Есть. И не одно. Искать на данном форуме по ключевому слову start_of_group, например... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 11:11 |
|
||
|
Помогите разбить на группы
|
|||
|---|---|---|---|
|
#18+
__Avenger__, как вариант - поискать топики со словом " инвариант". Его не так прозрачно, как start_of_group, но можно и на вашу задачу натянуть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 11:12 |
|
||
|
Помогите разбить на группы
|
|||
|---|---|---|---|
|
#18+
>=2012 в лоб Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 11:18 |
|
||
|
Помогите разбить на группы
|
|||
|---|---|---|---|
|
#18+
BredSpit, второй лаг - лишний. хватит и одного. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 11:22 |
|
||
|
Помогите разбить на группы
|
|||
|---|---|---|---|
|
#18+
Элегантное решение - это не насиловть SQL, решая на нем совершенно нереляционные задачи, а делать такие вещи в клиентском приложении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 11:32 |
|
||
|
Помогите разбить на группы
|
|||
|---|---|---|---|
|
#18+
fkthat, разработчики так старались, засовывали в SQL оконные функции. Ицек БенГан написал толстую книгу по их использованию для написания эффективного SQL-кода. А вы так вот взяли и поставили на всем крест? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 11:34 |
|
||
|
Помогите разбить на группы
|
|||
|---|---|---|---|
|
#18+
Щукина Аннаfkthat, разработчики так старались, засовывали в SQL оконные функции. Ицек БенГан написал толстую книгу по их использованию для написания эффективного SQL-кода. А вы так вот взяли и поставили на всем крест? Да зачем же крест ставить - прикольная штука. Особенно прикольно потом поддерживать такие запросы, где СTE, оконная ф-ия и вложенный подзапрос с еще одной оконной ф-ией. И это всего лишь в запросе, где даже десятка строк нет. А у нас тут есть, например, кое-какое легаси, где недавно нашли хранимку, в которой 2846 (две тысячи восемьсот сорок шесть - специально прописью повторил) строк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 11:45 |
|
||
|
Помогите разбить на группы
|
|||
|---|---|---|---|
|
#18+
Спасибо. Все получилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 11:56 |
|
||
|
Помогите разбить на группы
|
|||
|---|---|---|---|
|
#18+
fkthatА у нас тут есть, например, кое-какое легаси, где недавно нашли хранимку, в которой 2846 (две тысячи восемьсот сорок шесть - специально прописью повторил) строк Вот именно потому в вашем легаси и есть 2846 строк (две тысячи восемьсот сорок шесть - специально прописью повторил(с)), что не было простых и надежный вариантов в виде "СTE, оконной ф-ия и вложенного подзапроса с еще одной оконной ф-ией"(с) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 12:00 |
|
||
|
Помогите разбить на группы
|
|||
|---|---|---|---|
|
#18+
fkthat, перепишите хотелку автора без всего современного тюнинга. И получите очередное легаси, на сильно больше, чем 10 строк кода... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 12:01 |
|
||
|
Помогите разбить на группы
|
|||
|---|---|---|---|
|
#18+
Щукина Аннаfkthat, перепишите хотелку автора без всего современного тюнинга. И получите очередное легаси, на сильно больше, чем 10 строк кода...Зря стараетесь :) Как показывает практика, подобные аргументы апологетами подхода "не насиловать SQL" не воспринимаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 12:22 |
|
||
|
Помогите разбить на группы
|
|||
|---|---|---|---|
|
#18+
Щукина Аннаfkthat, перепишите хотелку автора без всего современного тюнинга. И получите очередное легаси, на сильно больше, чем 10 строк кода... Я бы, скорее всего, это поле group просто тупо вставлял еще при добавлении записей в таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 12:29 |
|
||
|
Помогите разбить на группы
|
|||
|---|---|---|---|
|
#18+
fkthatнашли хранимку, в которой 2846 (две тысячи восемьсот сорок шесть - специально прописью повторил) строк а чего она такая маленькая то? небось не форматировали, да каждый запрос в одну строку писали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 12:38 |
|
||
|
Помогите разбить на группы
|
|||
|---|---|---|---|
|
#18+
fkthatЯ бы, скорее всего, это поле group просто тупо вставлял еще при добавлении записей в таблицу.путь истинного джедая - хранить вычисляемые значения и изменять их всякий раз при обновлении данных в таблице... Хорошо, если данные будут прирастать только в "конец" таблицы. А если - в середину? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 12:41 |
|
||
|
Помогите разбить на группы
|
|||
|---|---|---|---|
|
#18+
fkthatЭлегантное решение - это не насиловть SQL, решая на нем совершенно нереляционные задачи, а делать такие вещи в клиентском приложении. fkthat уверен, что сервер баз данных и приложение находятся в отношении 1:1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 13:54 |
|
||
|
Помогите разбить на группы
|
|||
|---|---|---|---|
|
#18+
fkthatЭлегантное решение - это не насиловть SQL, решая на нем совершенно нереляционные задачи, а делать такие вещи в клиентском приложении. Надо же понимать - где насилие. а где нет. Пробрасывать на клиента пару миллионов строк, чтобы рассчитать группы - самое прямое насилие, которое только есть. Нельзя спешить с выводами, не понимая контекста и не убедившись в правильности суждений в каждом конкретном случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 13:57 |
|
||
|
Помогите разбить на группы
|
|||
|---|---|---|---|
|
#18+
Wlr-l, Для тех, кто застрял в эпохе FoxPro и Дельфи, - под клиентским приложением подразумевается вовсе не обязательно окошко виндовс, в котором операционистка тетя Маша мышью тычет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 13:59 |
|
||
|
Помогите разбить на группы
|
|||
|---|---|---|---|
|
#18+
Владислав КолосовПробрасывать на клиента пару миллионов строк, чтобы рассчитать группы - самое прямое насилие, которое только есть. Пробросить только нужные. По-любому, если их пронумеровать в сиквеле, как ТС хочет, то два млн. строк так и останутся двумя млн. строк, т.ч. наружу все равно отправится только какая-то их часть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 14:06 |
|
||
|
Помогите разбить на группы
|
|||
|---|---|---|---|
|
#18+
fkthatWlr-l, Для тех, кто застрял в эпохе FoxPro и Дельфи, - под клиентским приложением подразумевается вовсе не обязательно окошко виндовс, в котором операционистка тетя Маша мышью тычет. О, да! У вас крутое приложение с запросами по тысячи строк SQL, в которых вам не разобраться, лучше на С да с for на клиенте! А мы, что? глушь, деревня! С приложениями, реализованными с помощью Delphi, C#, Excel со его VBA, только FoxPro уже осталась в воспоминаниях. Да еще и наша тетя Маша мышью тычет куда попало! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 14:14 |
|
||
|
Помогите разбить на группы
|
|||
|---|---|---|---|
|
#18+
fkthatВладислав КолосовПробрасывать на клиента пару миллионов строк, чтобы рассчитать группы - самое прямое насилие, которое только есть. Пробросить только нужные. По-любому, если их пронумеровать в сиквеле, как ТС хочет, то два млн. строк так и останутся двумя млн. строк, т.ч. наружу все равно отправится только какая-то их часть. АГА, если пронумеровать, то получить группы уже не так сложно. Книгу, где это описывается вам уже порекомендовали! Так два миллиона строк на клиента вывалили, а теперь еще и с номерами! Кстати, сиквел - неудачный термин. Историю надо знать! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 14:18 |
|
||
|
Помогите разбить на группы
|
|||
|---|---|---|---|
|
#18+
Wlr-l, Тебе бы из книг я порекомендовал начать с букваря. Глядишь, научился бы сначала читать, что тебе другие пишут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 14:31 |
|
||
|
Помогите разбить на группы
|
|||
|---|---|---|---|
|
#18+
fkthatПробросить только нужные. По-любому, если их пронумеровать в сиквеле, как ТС хочет, то два млн. строк так и останутся двумя млн. строк, т.ч. наружу все равно отправится только какая-то их часть.Вам бы матчасть по ранжирующим и оконным функциям подучить, а потом уже дискутировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 14:38 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39819296&tid=1687761]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
147ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 493ms |

| 0 / 0 |
