|
|
|
Объединить результаты 2-х запросов к одной таблице и выполнить мат. действие
|
|||
|---|---|---|---|
|
#18+
Здравия коллеги! авторOracle Database 11g Release 11.2.0.2.0 - 64bit Production Помогите с запросом, что-т блин идей, кроме громоздких в голову не приходит. Значит есть таблица - история событий. Упрощённо такая: авторID | INSERTTS | Param1 | Param2 | --------------------------------------------------------------------------- 10 | 12-DEC-17 11.10.25.989000000 PM | 0 | 1 | 11 | 12-DEC-17 11.20.25.989000000 PM | 1 | 0 | 12 | 12-DEC-17 11.30.25.989000000 PM | 1 | 0 | 13 | 12-DEC-17 12.12.25.989000000 PM | 1 | 1 | 14 | 12-DEC-17 12.34.25.989000000 PM | 0 | 1 | 15 | 12-DEC-17 12.50.25.989000000 PM | 0 | 1 | 16 | 12-DEC-17 12.55.25.989000000 PM | 1 | 1 | ... nm | 12-DEC-17 13.50.25.989000000 PM | 1 | 1 | Задача: 1. Найти суммарное количество строк в каждом часе с Param1 =1. (То есть сгруппировать по часам, дням, месяцам и годам) 2. Найти суммарное количество строк в каждом часе с Param2 =1. 3. Поделить количество строк в пункте 2 на количество строк в пункте 1. То есть на выходе мне нужен результат деления также сгруппированный соответственно. Мой запрос, который не пашет, так как псевдонимы нельзя использовать там где хочется: Код: plsql 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. по отдельности SELECTы работают. Проблема в части: Код: plsql 1. Так как через псевдонимы Year, Month... я не могу сослаться на колонки, а точнее даже на кусок даты в колонке. Но, блин, мне нужно группировать по часам с одной стороны, а с другой надо как-то сослаться на поле по которому надо "сджоиниться" двум выборкам. А join у них как раз по дате до уровня часа. Помогите идеей, как реализовать. P.S.: уменьшал базовый запрос, может где-то есть опечатки, сорри. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 22:11 |
|
||
|
Объединить результаты 2-х запросов к одной таблице и выполнить мат. действие
|
|||
|---|---|---|---|
|
#18+
Param1 и Param2 могут принимать только значения 1 или 0? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 23:29 |
|
||
|
Объединить результаты 2-х запросов к одной таблице и выполнить мат. действие
|
|||
|---|---|---|---|
|
#18+
Усталый разработчик, нет это просто для примера я упростил. Да и кроме того, самих параметров больше. То есть SELECTы строятся более, чем на основе одного параметра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 23:37 |
|
||
|
Объединить результаты 2-х запросов к одной таблице и выполнить мат. действие
|
|||
|---|---|---|---|
|
#18+
Код: plsql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2017, 01:47 |
|
||
|
Объединить результаты 2-х запросов к одной таблице и выполнить мат. действие
|
|||
|---|---|---|---|
|
#18+
Вячеслав Любомудров , спасибо! И главное я ж подумал ещё, что в MS SQL SRV я в таких случаях использую CTE. Но почему-то поспешно решил с ORACLE это не прокатит. Безосновательно, как оказалось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2017, 09:52 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=133&tid=1884728]: |
0ms |
get settings: |
4ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 334ms |

| 0 / 0 |
