Кросс-таблица с большим или неопределенным количеством категорий

Моя настоящая проблема связана с записью того, какой из очень большого числа антивирусных продуктов согласен с тем, что данный образец является членом данного семейства антивирусов. База данных насчитывает миллионы образцов, причем за каждый образец голосуют десятки антивирусных продуктов. Я хочу задать запрос типа "Для вредоносной программы, содержащей имяXYZ» какой образец набрал наибольшее количество голосов, и какие продавцы проголосовали за него? и получить результаты, такие как:

"BadBadVirus"  
                     V1  V2  V3  V4  V5  V6  V7  
Sample 1 - 4 votes    1   0   1   0   0   1   1      
Sample 2 - 5 votes    1   0   1   0   1   1   1   
Sample 3 - 5 votes    1   0   1   0   1   1   1  

 total     14         3       3       2   3   3  

Что может быть использовано, чтобы сказать мне, что Vendor 2 и Vendor 4 либо нене знаю, как обнаружить эту вредоносную программу или как ее называют по-другому.

Я попытаюсь немного обобщить мой вопрос, надеясь, что вы не помешаете вам помочь мне. Предположим, у меня есть пять избирателей (Алекс, Боб, Кэрол, Дейв, Эд), которых попросили посмотреть пять фотографий (P1, P2, P3, P4, P5) и решить, что "основной предмет " фотографии есть. Для нашего примера мыЯ просто предположу, что они были ограниченыКошка", "Собака", или же "Лошадь», Не каждый избиратель голосует за каждую вещь.

Данные находятся в базе данных в таком виде:

Photo, Voter, Decision
(1, 'Alex', 'Cat')
(1, 'Bob', 'Dog')
(1, 'Carol', 'Cat')
(1, 'Dave', 'Cat')
(1, 'Ed', 'Cat')
(2, 'Alex', 'Cat')
(2, 'Bob', 'Dog')
(2, 'Carol', 'Cat')
(2, 'Dave', 'Cat')
(2, 'Ed', 'Dog')
(3, 'Alex', 'Horse')
(3, 'Bob', 'Horse')
(3, 'Carol', 'Dog')
(3, 'Dave', 'Horse')
(3, 'Ed', 'Horse')
(4, 'Alex', 'Horse')
(4, 'Bob', 'Horse')
(4, 'Carol', 'Cat')
(4, 'Dave', 'Horse')
(4, 'Ed', 'Horse')
(5, 'Alex', 'Dog')
(5, 'Bob', 'Cat')
(5, 'Carol', 'Cat')
(5, 'Dave', 'Cat')
(5, 'Ed', 'Cat')

Цель в том, что, учитывая интересующую нас тему фото, мыХотелось бы узнать, сколько избирателей думали, что это главное на этой фотографии, а также список, КОТОРЫЕ ИЗБИРАЛИ.

Query for: "Cat"
      Total  Alex  Bob Carol Dave Ed
1 -     4      1    0    1     1   1
2 -     3      1    0    1     1   0 
3 -     0      0    0    0     0   0 
4 -     1      0    0    1     0   0 
5 -     4      0    1    1     1   1
------------------------------------
total  12      2    1    4     3   2 

Query for: "Dog"
      Total  Alex  Bob Carol Dave Ed
1 -     1     0      1   0    0    0
2 -     2     0      1   0    0    1
3 -     1     0      0   1    0    0 
4 -     0     0      0   0    0    0 
5 -     1     1      0   0    0    0 
------------------------------------
total   5     1      2   1    0    1 

Это то, что я могу сделать с данными в том формате, в котором они хранятся?

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

Спасибо за любые предложения.