Моя настоящая проблема связана с регистрацией того, какие из очень большого числа антивирусных продуктов согласны с тем, что данный образец является членом данного антивирусного семейства. База данных содержит миллионы образцов, по каждому из которых голосуют десятки антивирусных продуктов. Я хочу задать запрос типа «Для вредоносного ПО, содержащего имя 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
Это может быть использовано, чтобы сказать мне, что поставщик 2 и поставщик 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
Могу ли я что-то сделать с данными в том формате, в котором они у меня сохранены?
У меня возникли трудности с получением запроса, который делает это - хотя достаточно просто вывести данные, а затем написать программу для этого, я действительно хотел бы иметь возможность сделать это В БАЗЕ ДАННЫХ, если я могу.
Спасибо за любые предложения.