Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как выбрать записи с максимальными значениями одной колонки?
|
|||
|---|---|---|---|
|
#18+
Вопрос аналогичен сабжу, только запрос с использованием group by не подойдет, так как используется внутри CTE (рекурсии). Если конкретнее, то есть таблица с полями: ID, ObjectID, ParentID, Amount, Version. То есть дерево (связанное через ObjectID - ParentID), где для каждого узла есть свой Amount. При его изменении не меняется запись, а добавляется новая запись с инкрементированной версией. При построении дерева используется рекурсивный обход через WITH AS CTE. Если версия одна, то все нормально, а если несколько, то надо брать последнюю, но если ее определять через select max(version), ... group by ..., то выдается ошибка, что нельзя использовать group by внутри CTE. Причем неважно, что этот group by вообще никакого отношения к рекурсии не имеет. Создать View и выбирать поля из него, вместо подзапроса с group by не предлагать, так как не желательно нарушать (добавлять, изменять) структуру таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 05:46 |
|
||
|
Как выбрать записи с максимальными значениями одной колонки?
|
|||
|---|---|---|---|
|
#18+
я только не понял, а кто мешает до построения рекурсии запросом выбрать в CTE выбрать только актуальные записи, а после по результату этого СТЕ строить второе, рекурсивное с обходом дерева? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 06:31 |
|
||
|
Как выбрать записи с максимальными значениями одной колонки?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 06:36 |
|
||
|
Как выбрать записи с максимальными значениями одной колонки?
|
|||
|---|---|---|---|
|
#18+
Добрый Э - Эхя только не понял, а кто мешает до построения рекурсии запросом выбрать в CTE выбрать только актуальные записи, а после по результату этого СТЕ строить второе, рекурсивное с обходом дерева? Не подскажите, как это можно сделать? Просто, как я понял, рекурсивные запросы должны начинаться со слов WITH и CTE. Собственно, то что вы посоветовали, я и пытаюсь сделать, только видимо синтаксис не тот, так как внутри рекурсии выбираю актуальные записи. Вне ее мне представляется возможным сделать это только через создание view, но в данном случае это не подходит. Ruuushura223, 6603924 Логично представить, что все сообщения в этой теме я прочитал, перед тем как постить в нее вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 13:48 |
|
||
|
Как выбрать записи с максимальными значениями одной колонки?
|
|||
|---|---|---|---|
|
#18+
shura223, юзабильный репрезентативный набор тестовых данных и желаемый результат на них приводи. сразу увеличится число желающих помочь тебе в решении задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 14:16 |
|
||
|
Как выбрать записи с максимальными значениями одной колонки?
|
|||
|---|---|---|---|
|
#18+
shura223как я понял, рекурсивные запросы должны начинаться со слов WITH и CTE.Что за чушь? CTE - это просто аббревиатура англоязычного названия этой конструкции в литратуре ( C ommon T able E xpression) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 14:20 |
|
||
|
Как выбрать записи с максимальными значениями одной колонки?
|
|||
|---|---|---|---|
|
#18+
iapshura223как я понял, рекурсивные запросы должны начинаться со слов WITH и CTE.Что за чушь? CTE - это просто аббревиатура англоязычного названия этой конструкции в литратуре ( C ommon T able E xpression)Ничто не мешает использовать эту аббревиатуру в качестве имени общего табличного выражения. Как и любое другое допустимое слово и даже произвольный набор не более 128 символов! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 14:22 |
|
||
|
Как выбрать записи с максимальными значениями одной колонки?
|
|||
|---|---|---|---|
|
#18+
Добрый день. код примерно такого вида будет по идее: SELECT z.t_ID FROM dHistoryCompGVZ_dbt z, (SELECT MAX (y.t_systime) max_time, MAX (xx.max_) max_date FROM dHistoryCompGVZ_dbt y, (SELECT MAX (x.t_SysDate) max_ FROM dHistoryCompGVZ_dbt x WHERE x.t_IDGVZ = 1) xx WHERE y.t_IDGVZ = 1 AND y.t_sysdate = xx.max_) yy WHERE z.t_IDGVZ = 1 AND z.t_systime = yy.max_time AND z.t_sysdate = yy.max_date; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2019, 16:16 |
|
||
|
Как выбрать записи с максимальными значениями одной колонки?
|
|||
|---|---|---|---|
|
#18+
pashaspashas, вы пять лет рожали эту несуразность? И это при условии, что правильных ответов сильно больше одного и любой - прямее вашего? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2019, 17:57 |
|
||
|
Как выбрать записи с максимальными значениями одной колонки?
|
|||
|---|---|---|---|
|
#18+
pashaspashasДобрый день. код примерно такого вида будет по идее:Удивительная тема. На вопрос автора дали несколько ответов с интервалом 2-5 лет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2019, 17:59 |
|
||
|
Как выбрать записи с максимальными значениями одной колонки?
|
|||
|---|---|---|---|
|
#18+
alexeyvgpashaspashasДобрый день. код примерно такого вида будет по идее:Удивительная тема. На вопрос автора дали несколько ответов с интервалом 2-5 лет.Видимо, хорошо ищется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2019, 18:00 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39808476&tid=1687882]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
135ms |
get topic data: |
10ms |
get forum data: |
13ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 494ms |

| 0 / 0 |
