2015-12-12 1 views
0

У меня есть таблица с именем VehicleAlerts, . Вы можете видеть на картинке ниже, что существуют различные типы AlertSubCategory, такие как Delphi/Delay Delay, Vehicle Stalled, Vehicle Speeding Geofence Violation. Как я получу счет всех типов AlertSubCategory в транспортном средстве?Как получить счетчик разных значений из одних и тех же столбцов в sql?

enter image description here

ответ

1

Использование Conditional Count сделать это

SELECT vehicleid, 
     P_D_delay_count = Count(CASE 
           WHEN alertsubcategory = 'pickup/drop delay' THEN 1 
           END) AS, 
     VehicleStalled = Count(CASE 
           WHEN alertsubcategory = 'VehicleStalled' THEN 1 
           END), 
     VehicleSpeeding = Count(CASE 
           WHEN alertsubcategory = 'VehicleSpeeding' THEN 1 
           END), 
     Geofence_Violation_count = Count(CASE 
              WHEN alertsubcategory = 'Geofence Violation' THEN 1 
             END) 
FROM yourtable 
GROUP BY vehicleid 
0

Простой Count с Group By на обоих VehicleId и AlertSubCategory получите данные

SELECT VehicleId, AlertSubCategory, Count(1) Occurrence 
FROM [table] 
GROUP BY VehicleId, AlertSubCategory 
0

Если вы хотите, чтобы получить количество всех автомобилей в каждой AlertSubCategory, то вы можете просто сгруппировать его по AlertSubCategory и взять считайте, как указано ниже.

SELECT AlertSubCategory, COUNT(Id) AS Count 
FROM VehicleAlerts 
GROUP BY AlertSubCategory 

Если вы хотите, чтобы получить COUT одного транспортного средства в каждом AlertSubCategory затем использовать ИНЕКЕ в этом SQL-запроса, как указано ниже.

DECLARE @VehicleId INT = 1 
SELECT AlertSubCategory, COUNT(Id) AS Count 
FROM VehicleAlerts 
WHERE Vehicle = @VehicleId 
GROUP BY AlertSubCategory 

Измените значение @VehicleId, как вам было необходимо.

0

SELECT AlertSubCategory, COUNT (*) as norow FROM VehicleAlerts group by AlertSubCategory

Смежные вопросы