Запрашивать 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
Другие вопросы по тегам