powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Группировка одних полей без группировки других.
19 сообщений из 19, страница 1 из 1
Группировка одних полей без группировки других.
    #39293914
STEREOLOVER.CS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, помогите, пожалуйста, решить задачу с запросом. Что есть.

select * FROM SKU_BALANCE_BY_DATE WHERE ID=1020175
ORDER BY DATE_ANALYSE

ID SKU_ID SUM_UNITS DATE_ANALYSE
1020175 0140240057 3 28.07.2016 16:06:50
1020175 0140240057 3 29.07.2016 0:05:01
1020175 0140240057 3 30.07.2016 0:05:01
1020175 0140240057 3 31.07.2016 0:05:02
1020175 0140240057 3 01.08.2016 0:05:02
1020175 0140240057 3 02.08.2016 0:05:01
1020175 0140240057 3 03.08.2016 0:05:02
1020175 0140240057 5 04.08.2016 0:05:01
1020175 0140240057 5 05.08.2016 0:05:02
1020175 0140240057 5 06.08.2016 0:05:01
1020175 0140240057 5 07.08.2016 0:05:01
1020175 0140240057 5 08.08.2016 0:05:02

Мне необходимо из этого всего вывести строку с минимальной датой. То есть найти строку с минимальной датой и всю её полностью вывести.
Как бы вы это сделали? Я пробовал по разному - не выходит никак. Если группировать по ID с выбором MIN(DATE_ANALYSE), то что-то нужно делать с SUM_UNITS минимальное или максимальное значение не могу поставить. Нужно значение именно конкретно для этой даты.
...
Рейтинг: 0 / 0
Группировка одних полей без группировки других.
    #39293919
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
STEREOLOVER.CSКак бы вы это сделали?
Используя window functions или на крайний случай exists.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Группировка одних полей без группировки других.
    #39293920
И все
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
select * from (
select * FROM SKU_BALANCE_BY_DATE WHERE ID=1020175
ORDER BY DATE_ANALYSE
)
where rownum = 1
...
Рейтинг: 0 / 0
Группировка одних полей без группировки других.
    #39293923
Фотография Fogel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это очень просто
запрос в котором подзапрос

ты в вузе что ли восстановился?
...
Рейтинг: 0 / 0
Группировка одних полей без группировки других.
    #39293931
авторМне необходимо из этого всего вывести строку с минимальной датой. То есть найти строку с минимальной датой и всю её полностью вывести.
...
Рейтинг: 0 / 0
Группировка одних полей без группировки других.
    #39293936
STEREOLOVER.CS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скажу, как я пытаюсь сделать:

SELECT sb.ID as all_sku_id,
0 as UNITS_RECEIVED,
1 as RCN_ID,
MIN(sb.DATE_ANALYSE) as RCN_COMPLETED,
0 AS UNITS_SHIPPED,
1 AS ORDER_ID,
MIN(sb.DATE_ANALYSE) as ORDER_SHIPPED,
sb.SUM_UNITS AS UNITS_SB,
MIN(sb.DATE_ANALYSE) AS SB_DATE_ANALYSE
FROM SKU_BALANCE_BY_DATE sb
WHERE sb.ID=1020175
GROUP BY sb.ID, sb.SUM_UNITS.

ALL_SKU_ID UNITS_RECEIVED RCN_ID RCN_COMPLETED UNITS_SHIPPED ORDER_ID ORDER_SHIPPED UNITS_SB SB_DATE_ANALYSE1020175 0 1 04.08.2016 0:05:01 0 1 04.08.2016 0:05:01 5 04.08.2016 0:05:011020175 0 1 28.07.2016 16:06:50 0 1 28.07.2016 16:06:50 3 28.07.2016 16:06:50

Выводится 2 строки, потому как два разных значения есть sb.SUM_UNITS. Мне бы группировать по sb.ID, но тогда у меня ругается на то, что не групированно по sb.SUM_UNITS. Не min, ни max нельзя. Нужно конкретно значение. Подскажите, как запрос подправить?
...
Рейтинг: 0 / 0
Группировка одних полей без группировки других.
    #39293946
Фотография Fogel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И всеselect * from (
select * FROM SKU_BALANCE_BY_DATE WHERE ID=1020175
ORDER BY DATE_ANALYSE
)
where rownum = 1

неправильно, минимальная сумма может быть одной той же в разных строках.
и неоптимально по выполнению (вытаскиваем весь набор для сортировки)
...
Рейтинг: 0 / 0
Группировка одних полей без группировки других.
    #39293952
STEREOLOVER.CS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кажись получилось вот так вот:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT sb.ID as all_sku_id, 
       0 as UNITS_RECEIVED, 
       1 as RCN_ID, 
       MIN(sb.DATE_ANALYSE) as RCN_COMPLETED, 
       0 AS UNITS_SHIPPED, 
       1 AS ORDER_ID, 
       MIN(sb.DATE_ANALYSE) as ORDER_SHIPPED, 
       sb.SUM_UNITS AS UNITS_SB, 
       MIN(sb.DATE_ANALYSE)  AS SB_DATE_ANALYSE 
       FROM SKU_BALANCE_BY_DATE sb
 WHERE sb.ID=1020175
   AND sb.DATE_ANALYSE=(SELECT MIN(sub.DATE_ANALYSE) FROM SKU_BALANCE_BY_DATE sub WHERE sub.ID=sb.ID)
 GROUP BY sb.ID, sb.SUM_UNITS



Что скажете? Сойдёт? Выводится одна строка.
...
Рейтинг: 0 / 0
Группировка одних полей без группировки других.
    #39293959
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
неправильно
русский знаем ?
автор То есть найти строку с минимальной датой и всю её полностью вывести.
Fogelи неоптимально
для кого ?
...
Рейтинг: 0 / 0
Группировка одних полей без группировки других.
    #39293966
Фотография Fogel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
STEREOLOVER.CSКажись получилось вот так вот:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT sb.ID as all_sku_id, 
       0 as UNITS_RECEIVED, 
       1 as RCN_ID, 
       MIN(sb.DATE_ANALYSE) as RCN_COMPLETED, 
       0 AS UNITS_SHIPPED, 
       1 AS ORDER_ID, 
       MIN(sb.DATE_ANALYSE) as ORDER_SHIPPED, 
       sb.SUM_UNITS AS UNITS_SB, 
       MIN(sb.DATE_ANALYSE)  AS SB_DATE_ANALYSE 
       FROM SKU_BALANCE_BY_DATE sb
 WHERE sb.ID=1020175
   AND sb.DATE_ANALYSE=(SELECT MIN(sub.DATE_ANALYSE) FROM SKU_BALANCE_BY_DATE sub WHERE sub.ID=sb.ID)
 GROUP BY sb.ID, sb.SUM_UNITS



Что скажете? Сойдёт? Выводится одна строка.
именно это и имел в виду
группировка здесь не нужна, если нет дублей по всем полям.

ps: если у тебя условие "выборка по определённому id и минимальной дате", то SUM_UNITS здесь вообще не причём и первый твой вариант вообще не в тему.
...
Рейтинг: 0 / 0
Группировка одних полей без группировки других.
    #39293967
Мы о чем
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторКак бы вы это сделали? Я пробовал по разному - не выходит никак. Если группировать по ID с выбором MIN(DATE_ANALYSE), то что-то нужно делать с SUM_UNITS минимальное или максимальное значение не могу поставить. Нужно значение именно конкретно для этой даты.
ЗЫ. Какая минимальная сумма? Что тут не оптимально?
PSSS-ы. Жду вариантов попроще
...
Рейтинг: 0 / 0
Группировка одних полей без группировки других.
    #39293974
STEREOLOVER.CS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо! Вроде бы как добился желаемого.
...
Рейтинг: 0 / 0
Группировка одних полей без группировки других.
    #39293978
Фотография Fogel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
123ййнеправильно
русский знаем ?
автор То есть найти строку с минимальной датой и всю её полностью вывести.
Fogelи неоптимально
для кого ?
))))
"полностью" обычно подразумевает все удовлетворяющие значения.
то есть могут быть и "строки", а может быть и "строка".
запрос лучше писать, чтобы он корректно отрабатывал по любым изменениям данных, когда вместо одной строки будут "строки".

чего тебя вдруг закусило, 123-й?
я вроде никого не хотел задеть.
...
Рейтинг: 0 / 0
Группировка одних полей без группировки других.
    #39293981
Ух-хо-хо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
STEREOLOVER.CSВсем спасибо! Вроде бы как добился желаемого.

Желаемого индусского кода?
Можно твой выбор из вариантов в студию?
...
Рейтинг: 0 / 0
Группировка одних полей без группировки других.
    #39293984
????
...
Рейтинг: 0 / 0
Группировка одних полей без группировки других.
    #39293985
И все
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А если по одному ИД есть 2 минимальные даты (или три..........)
...
Рейтинг: 0 / 0
Группировка одних полей без группировки других.
    #39293991
Фотография Fogel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И всеА если по одному ИД есть 2 минимальные даты (или три..........)

этот запрос все эти строки и выведет
Код: plsql
1.
2.
3.
4.
SELECT *
       FROM SKU_BALANCE_BY_DATE sb
 WHERE sb.ID=1020175
   AND sb.DATE_ANALYSE=(SELECT MIN(sub.DATE_ANALYSE) FROM SKU_BALANCE_BY_DATE sub WHERE sub.ID=sb.ID)
...
Рейтинг: 0 / 0
Группировка одних полей без группировки других.
    #39293994
)))
...
Рейтинг: 0 / 0
Группировка одних полей без группировки других.
    #39294309
AnSi_Sr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И всеА если по одному ИД есть 2 минимальные даты (или три..........)
rank(), Analytic functions
Пример
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Группировка одних полей без группировки других.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]