sql подзапросы, группировка и немного математики - PullRequest
2 голосов
/ 02 декабря 2010

это считает все элементы в B и группы на A:

SELECT A, Count(*) AS [Count All]
FROM MyTable 
GROUP BY A;

это считает все 1 в B и группы на A:

SELECT A, Count(*) AS [Count Ones]
FROM MyTable
WHERE
     MyTable.[B]='1' 
GROUP BY A;

Как поставить оба столбца (все и 1) и дополнительно, как я могу показать процент в другой строке

столбцы таблицы:

[A] [COUNT ALL] [COUNT ONES] [ONES / ALL]

1 Ответ

2 голосов
/ 02 декабря 2010

Начиная с MS-ACCESS вы можете использовать iif вместо case

SELECT 
     Table1.A, 
     Sum(IIf([B]=1,1,0)) AS Count1, 
     Count(Table1.A) AS total, 
     (Sum(IIf([B]=1,1,0))/ Count(Table1.A)) * 100 AS percentofones
FROM 
     Table1
GROUP BY 
     Table1.A;
...