Лучший способ группировать и считать несколько столбцов SQL - PullRequest
0 голосов
/ 08 мая 2019
I have a survey table that shows the answers that people have taken once 
a month when they enter a contest. I'm trying to find a better way to 
have the sum of  people who answer "Just Me ,My Spuse/Partner" and 
another sum of people who people who answer  Children, 0-5, 6-12,13-17

This is the table called "Survey" that is provided:
User    JustMe      Children 0-5      Children 6-12    Myspouse/partner
  5      N              N               N                  N                           
  5      N              N               N                  N
  4      N              N               N                  N
  4      N              N               N                  N
 24      N              N               N                  N
 24      N              N               N                  N
 12      N              N               N                  N
 12     Just Me         N               N              Myspousepartner           
 46     Just Me         N        Children 6-12 years   Mypousepartner
 46     Just Me         N        Children 6-12 years   Mypousepartner

Я просто надеюсь, что у меня будет такой стол

Я хочу, чтобы в моей таблице отображалась сумма детей в возрастной группе и Justme / Partner

I hope my output will be like this:
Children    JustMe/Partner
4045         1200 


  * I tried this code:
    SELECT 
    Children_13_17_years,Children_6_12_years,
    TotalSubjects= Count(*) Over (partition by Children_13_17_years),
    TotalSub= Count(*) Over (partition by Children_6_12_years)

1 Ответ

1 голос
/ 08 мая 2019

Попробуйте выбрать сумму на основе регистрационных данных. Если выписан регистр, сумма увеличивается на 1.

SELECT 
   SUM(CASE WHEN [Children 0-5] IS NOT NULL OR [Children 6-12] IS NOT NULL OR [Children 13-17] IS NOT NULL THEN 1 ELSE 0 END) as '[Children]',
   SUM(CASE WHEN [JustMe] IS NOT NULL OR [Myspouse/partner] IS NOT NULL THEN 1 ELSE 0 END) as '[JustMe/Partner]'
FROM [TableName]

** Возможно, вам придется изменить имена столбцов, псевдонимы и имена таблиц в квадратных скобках. Возможно, вам также придется изменить операторы case на col != 'N', если в вашей базе данных есть символ N вместо нуля.

...