Запрашивать 15 самых распространенных неисправностей, нужно накопленное время простоя из другого столбца
В настоящее время я пытаюсь запросить список 15 самых распространенных неисправностей в ПЛК на складе. Я получил эту часть вниз:
Select top 15 fault_number, fault_message, count(*) FaultCount
from Faults_Stator
where T_stamp> dateadd(hour, -18, getdate())
Group by Fault_number, Fault_Message
Order by Faultcount desc
HOOOWEVER Теперь мне нужно узнать общее время простоя указанных неисправностей в списке 15 лучших, информацию в другом столбце "Fault_duration". Как бы я поступил так? Заранее спасибо, вы все мне уже очень помогли.
+--------------+---------------------------------------------+------------+
| Fault Number | Fault Message | FaultCount |
+--------------+---------------------------------------------+------------+
| 122 | ST10: Part A&B Failed | 23 |
| 4 | ST16: Part on Table B | 18 |
| 5 | ST7: No Spring Present on Part A | 15 |
| 6 | ST7: No Spring Present on Part B | 12 |
| 8 | ST3: No Pin Present B | 8 |
| 1 | ST5: No A Housing | 5 |
| 71 | ST4: Shuttle Right Not Loaded | 4 |
| 144 | ST15: Vertical Cylinder did not Retract | 3 |
| 98 | ST8: Plate Loader Can not Retract | 3 |
| 72 | ST4: Shuttle Left Not Loaded | 2 |
| 94 | ST8: Spring Gripper Cylinder did not Extend | 2 |
| 60 | ST8: Plate Loader Can not Retract | 1 |
| 83 | ST6: No A Spring Present | 1 |
| 2 | ST5: No B Housing | 1 |
| 51 | ST4: Vertical Cylinder did not Extend | 1 |
+--------------+---------------------------------------------+------------+
Я знаю, что не буду использовать тот же запрос, но я не знаю, как сделать этот следующий шаг.
Длительность сбоя - это столбец, который указывает, как долго длится сбой в мс. Я пытаюсь, чтобы те накопились рядом с соответствующей ошибкой. Таким образом, первый правонарушитель будет суммировать эти 23 отдельных случая сбоя рядом с ним в другом столбце.
1 ответ
Решение
Вы должны быть в состоянии использовать аккумулятор SUM:
Select top 15 fault_number, fault_message, count(*) FaultCount, SUM (Fault_duration) as FaultDuration
from Faults_Stator
where T_stamp> dateadd(hour, -18, getdate())
Group by Fault_number, Fault_Message
Order by Faultcount desc