У меня есть таблица SQL в следующем формате:соотношение SQL между рядами
+------------------------------------+
| function_id | event_type | counter |
+-------------+------------+---------+
| 1 | fail | 1000 |
| 1 | started | 5000 |
| 2 | fail | 800 |
| 2 | started | 4500 |
| ... | ... | ... |
+-------------+------------+---------+
Я хочу выполнить запрос по этому поводу, что будет сгруппировать результаты по function_id, давая отношение числа «провал 'событий против числа «запущенных» событий, а также поддержания количества сбоев. То есть Я хочу, чтобы выполнить запрос, который будет давать что-то, что выглядит следующим образом:
+-------------------------------------+
| function_id | fail_ratio | failures |
+-------------+------------+----------+
| 1 | 20% | 1000 |
| 2 | 17.78% | 800 |
| ... | ... | |
+-------------+------------+----------+
Я попробовал несколько подходов, но не увенчались успехом до сих пор. Я использую Apache Drill SQL на данный момент, так как эти данные извлекаются из плоских файлов.
Любая помощь была бы принята с благодарностью! :)
Большое спасибо, это работает отлично! Мне просто нужно было сделать быстрое изменение для этого, чтобы набрать числа как float, так как: select function_id, 100.0 * cast (сумма, когда event_type = 'fail', а затем end end) как float)/cast (сумма (случай, когда event_type = 'start', а затем end end) как float) как fail_start_ratio, сумма (случай, когда event_type = 'fail', а затем конец счетчика) в качестве сбоев от t group by function_id – ANikol
Извините, что получил странно отформатированный :( select function_id, 100.0 * cast (сумма, когда event_type = 'fail', а затем end end) как float)/cast (сумма (case when event_type = 'start', а затем end end) как float) как fail_start_ratio, sum (case when event_type = 'fail', а затем end end) в качестве сбоев от t group by function_id – ANikol
'select function_id,' 10 '100.0 * cast (сумма, когда event_type = 'fail', а затем конец концом) как float)/cast (сумма, когда event_type = 'start', а затем end end) как float) как fail_start_ratio, sum (случай, когда event_type = 'fail', а затем end end) в качестве сбоев из t-группы function_id – ANikol