В течение последних нескольких дней я пытался найти способ вытащить очень важный набор информации из таблицы, содержащей то, что я называю ежедневными подсчетами. У меня есть таблица, которая настраивается следующим образом.SQL one table aggregation
person|company|prod1|prod2|prod3|gen_date
В каждой компании имеется более одного человека, и каждый человек может иметь разные комбинации продуктов, которые они приобрели. То, что я пытался выяснить, - это заявление SQL, в котором будет указано количество людей, которые купили конкретный продукт для каждой компании. Таким образом, выход примерно так:
Comp ABC | 13 Prod1 | 3 Prod2 | 5 Prod 3
Comp DEF | 2 Prod1 | 15 Prod2 | 0 Prod 3
Comp HIJ | 0 Prod1 | 0 Prod2 | 7 Prod 3
В настоящее время, если человек не был выбран продукт значение хранится на NULL
.
Лучший у меня сейчас есть 3 разных оператора, которые могут создавать эту информацию, если они запускаются самостоятельно.
SELECT Count(person) as puchases, company
FROM Sales WHERE prod1 = '1' and gendate = '3/24/2010'
Group BY company
http://en.wikipedia.org/wiki/First_normal_form –
Это не нарушает 1NF. 3NF, возможно. – Aaronaught