|
|
|
Группировка одних полей без группировки других.
|
|||
|---|---|---|---|
|
#18+
Коллеги, помогите, пожалуйста, решить задачу с запросом. Что есть. 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 минимальное или максимальное значение не могу поставить. Нужно значение именно конкретно для этой даты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 13:59:09 |
|
||
|
Группировка одних полей без группировки других.
|
|||
|---|---|---|---|
|
#18+
STEREOLOVER.CSКак бы вы это сделали? Используя window functions или на крайний случай exists. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 14:03:26 |
|
||
|
Группировка одних полей без группировки других.
|
|||
|---|---|---|---|
|
#18+
select * from ( select * FROM SKU_BALANCE_BY_DATE WHERE ID=1020175 ORDER BY DATE_ANALYSE ) where rownum = 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 14:03:31 |
|
||
|
Группировка одних полей без группировки других.
|
|||
|---|---|---|---|
|
#18+
это очень просто запрос в котором подзапрос ты в вузе что ли восстановился? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 14:05:09 |
|
||
|
Группировка одних полей без группировки других.
|
|||
|---|---|---|---|
|
#18+
авторМне необходимо из этого всего вывести строку с минимальной датой. То есть найти строку с минимальной датой и всю её полностью вывести. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 14:10:04 |
|
||
|
Группировка одних полей без группировки других.
|
|||
|---|---|---|---|
|
#18+
Скажу, как я пытаюсь сделать: 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 нельзя. Нужно конкретно значение. Подскажите, как запрос подправить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 14:14:38 |
|
||
|
Группировка одних полей без группировки других.
|
|||
|---|---|---|---|
|
#18+
И всеselect * from ( select * FROM SKU_BALANCE_BY_DATE WHERE ID=1020175 ORDER BY DATE_ANALYSE ) where rownum = 1 неправильно, минимальная сумма может быть одной той же в разных строках. и неоптимально по выполнению (вытаскиваем весь набор для сортировки) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 14:25:16 |
|
||
|
Группировка одних полей без группировки других.
|
|||
|---|---|---|---|
|
#18+
Кажись получилось вот так вот: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Что скажете? Сойдёт? Выводится одна строка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 14:28:27 |
|
||
|
Группировка одних полей без группировки других.
|
|||
|---|---|---|---|
|
#18+
неправильно русский знаем ? автор То есть найти строку с минимальной датой и всю её полностью вывести. Fogelи неоптимально для кого ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 14:36:51 |
|
||
|
Группировка одних полей без группировки других.
|
|||
|---|---|---|---|
|
#18+
STEREOLOVER.CSКажись получилось вот так вот: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Что скажете? Сойдёт? Выводится одна строка. именно это и имел в виду группировка здесь не нужна, если нет дублей по всем полям. ps: если у тебя условие "выборка по определённому id и минимальной дате", то SUM_UNITS здесь вообще не причём и первый твой вариант вообще не в тему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 14:40:59 |
|
||
|
Группировка одних полей без группировки других.
|
|||
|---|---|---|---|
|
#18+
авторКак бы вы это сделали? Я пробовал по разному - не выходит никак. Если группировать по ID с выбором MIN(DATE_ANALYSE), то что-то нужно делать с SUM_UNITS минимальное или максимальное значение не могу поставить. Нужно значение именно конкретно для этой даты. ЗЫ. Какая минимальная сумма? Что тут не оптимально? PSSS-ы. Жду вариантов попроще ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 14:43:47 |
|
||
|
Группировка одних полей без группировки других.
|
|||
|---|---|---|---|
|
#18+
Всем спасибо! Вроде бы как добился желаемого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 14:50:33 |
|
||
|
Группировка одних полей без группировки других.
|
|||
|---|---|---|---|
|
#18+
123ййнеправильно русский знаем ? автор То есть найти строку с минимальной датой и всю её полностью вывести. Fogelи неоптимально для кого ? )))) "полностью" обычно подразумевает все удовлетворяющие значения. то есть могут быть и "строки", а может быть и "строка". запрос лучше писать, чтобы он корректно отрабатывал по любым изменениям данных, когда вместо одной строки будут "строки". чего тебя вдруг закусило, 123-й? я вроде никого не хотел задеть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 14:54:11 |
|
||
|
Группировка одних полей без группировки других.
|
|||
|---|---|---|---|
|
#18+
STEREOLOVER.CSВсем спасибо! Вроде бы как добился желаемого. Желаемого индусского кода? Можно твой выбор из вариантов в студию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 14:56:08 |
|
||
|
Группировка одних полей без группировки других.
|
|||
|---|---|---|---|
|
#18+
???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 14:57:01 |
|
||
|
Группировка одних полей без группировки других.
|
|||
|---|---|---|---|
|
#18+
А если по одному ИД есть 2 минимальные даты (или три..........) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 14:57:47 |
|
||
|
Группировка одних полей без группировки других.
|
|||
|---|---|---|---|
|
#18+
И всеА если по одному ИД есть 2 минимальные даты (или три..........) этот запрос все эти строки и выведет Код: plsql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 15:05:40 |
|
||
|
Группировка одних полей без группировки других.
|
|||
|---|---|---|---|
|
#18+
))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 15:08:51 |
|
||
|
Группировка одних полей без группировки других.
|
|||
|---|---|---|---|
|
#18+
И всеА если по одному ИД есть 2 минимальные даты (или три..........) rank(), Analytic functions Пример ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2016, 07:27:40 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39293959&tid=1887646]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
516ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 262ms |
| total: | 854ms |

| 0 / 0 |
