mySQL: учитывая данные 2 столбцов, найдите 3-й столбец и затем AVG () 3-й столбец на основе 2-го столбца - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть 3 столбца, staffName, dateOfIncident, incidentNo.Я ищу 'total incidents', которое будет общим числом инцидентов от определенного персонала за определенный год, которое я получу от dateOfIncident.Теперь я должен найти среднее число «полных инцидентов», наконец, указав заголовки:

staffName | avgIncidents

То, что у меня пока есть:

SELECT l.staffName, l.dateOfIncident, COUNT(l.incidentNo) AS avgIncidents
FROM incidentsR l  

, которое отображает:

staffName | dateOfIncident | avgIncidents
....      | .....          | ....

Хотя это, очевидно, обеспечивает вывод в 3 столбца, и до сих пор я могу только подсчитать общее количество инцидентов, которое мне затем нужно использовать для вычисления avg.

Мне нужна помощь в том, как взять информацию из первых двух столбцов имени и даты, чтобы найти 'total incidents' для этого конкретного человека в этом году.А затем для каждого staffName вычислите среднее число 'total incidents' за те годы, у нас есть данные о персонале.

1 Ответ

0 голосов
/ 04 декабря 2018

Ваш запрос будет:

SELECT l.staffName, year(l.dateOfIncident) as year,
       COUNT(*) as incidentsPerYear
FROM incidentsR l  
GROUP BY l.staffName, year(l.dateOfIncident);

Чтобы получить среднегодовое значение для персонала, вы могли бы использовать подзапрос.Или сделайте расчет напрямую:

SELECT l.staffName,,
       COUNT(*) / COUNT(DISTINCT year(l.dateOfIncident))as avgIncidentsPerYear
FROM incidentsR l  
GROUP BY l.staffName;
...