|
Запрос на выборку последних данных
|
|||
---|---|---|---|
#18+
Доброго дня! В SQL не силен... Хочу создать запрос на выборку последних имеющихся данных по группе и условиям. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
с условием, что-то типа такого: Код: sql 1.
из приведенного нужно получить это: Код: sql 1. 2.
т.е. запрос должен отдать вторую запись для [pid] = 100 и первую для [pid] = 200. Даже не могу грамотно сформулировать вопрос для взрослых SQL-спецов. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2021, 16:57 |
|
Запрос на выборку последних данных
|
|||
---|---|---|---|
#18+
Virtual Student Доброго дня! В SQL не силен... Хочу создать запрос на выборку последних имеющихся данных по группе и условиям. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
с условием, что-то типа такого: Код: sql 1.
из приведенного нужно получить это: Код: sql 1. 2.
т.е. запрос должен отдать вторую запись для [pid] = 100 и первую для [pid] = 200. Даже не могу грамотно сформулировать вопрос для взрослых SQL-спецов. и что не получается? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2021, 17:57 |
|
Запрос на выборку последних данных
|
|||
---|---|---|---|
#18+
cross apply посмотри ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2021, 19:01 |
|
Запрос на выборку последних данных
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4.
Если нужно по одной записи для каждого id, то замените RANK() на ROW_NUMBER(). Имею в виду, что у вас две записи имеют одну и ту же дату. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2021, 19:50 |
|
Запрос на выборку последних данных
|
|||
---|---|---|---|
#18+
iap Код: sql 1. 2. 3. 4.
Если нужно по одной записи для каждого id, то замените RANK() на ROW_NUMBER(). Имею в виду, что у вас две записи имеют одну и ту же дату. Большое спасибо за ответ! Но, не взлетело... :( В результате возвращается только одна запись, и только для одного id и для RANK() и для ROW_NUMBER(). Со сменой условия на [month] <= 2 - возвращается весь набор записей. Да, нужно именно по одной, последней записи для набора id, если такие существуют. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2021, 22:04 |
|
Запрос на выборку последних данных
|
|||
---|---|---|---|
#18+
Всем спасибо! Нашлось приемлемое и достаточно простое решение нашлось: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.
Целью поисков был вот такой шаблон запроса для подстановок в приложении: Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2021, 23:34 |
|
Запрос на выборку последних данных
|
|||
---|---|---|---|
#18+
Возможно найдется более элегантное и оптимальное решение?! Критика последнего варианта в части быстродействия приветствуется! ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2021, 23:45 |
|
Запрос на выборку последних данных
|
|||
---|---|---|---|
#18+
Virtual Student iap Код: sql 1. 2. 3. 4.
Если нужно по одной записи для каждого id, то замените RANK() на ROW_NUMBER(). Имею в виду, что у вас две записи имеют одну и ту же дату. Большое спасибо за ответ! Но, не взлетело... :( В результате возвращается только одна запись, и только для одного id и для RANK() и для ROW_NUMBER(). Со сменой условия на [month] <= 2 - возвращается весь набор записей. Да, нужно именно по одной, последней записи для набора id, если такие существуют. Тут просто не хватает фильтра по [pid] в where. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 00:46 |
|
|
start [/forum/topic.php?fid=46&msg=40108306&tid=1684145]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
40ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 235ms |
total: | 385ms |
0 / 0 |