Процент на группу от подсчета

#mysql #count #group-by #sum #percentage

#mysql #подсчет #группировка по #сумма #процент

Вопрос:

У меня есть следующий сценарий количества людей и типа, входящих в помещение, округленный до часа.

 Date-time              Type
2014-01-01 01:00:00    Employee
2014-01-01 01:00:00    Visitor
2014-01-01 01:00:00    Employee
2014-01-01 02:00:00    Visitor
2014-01-01 02:00:00    Visitor
2014-01-01 02:00:00    Visitor
2014-01-01 02:00:00    Employee
2014-01-01 03:00:00    Employee
2014-01-01 03:00:00    Visitor
2014-01-01 03:00:00    Employee
  

Я выполняю запрос, чтобы сгруппировать их вместе

 select 
    count(*), 
    HOUR(Date-Time), 
    Type 
from table1 
where Date(Date-time)='2014-01-01' 
group by HOUR(Date-Time), Type; 
  

Это дает мне следующую разбивку

 count(*)  HOUR Type
  2         1   Employee
  1         1   Visitor 
  1         2   Employee 
  3         2   Visitor
  2         3   Employee
  1         3   Visitor
  

Я пытаюсь получить процент от типа сотрудника, который вошел в здание, на основе общего количества подсчетов в час. Таким образом, за 1 час в помещение вошло в общей сложности 3 человека, процент для сотрудника будет (2/3 * 100) = 66,66%, для посетителя будет (1/3 * 100) = 33,33%

Результат, который я хочу, это

 count(*)  HOUR Type        Percentage
  2         1   Employee   66.66
  1         1   Visitor    33.33 
  1         2   Employee   25.00
  3         2   Visitor    75.00
  so on....
  

Комментарии:

1. У вас нет PK. Это проблема

2. Ах, так это невозможно? Извините, у меня очень мало опыта работы с базами данных.

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