SQL (Access) Запросы на создание диаграммы - PullRequest
1 голос
/ 05 мая 2020

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

Количество запросов считается общим (в основном stati c) затем количество различных видов деятельности, которое всегда будет меньше предыдущего (всегда необходимого) значения. У меня есть группы и подгруппы, которые я выбираю и отображаю как 4 числа. Вот пример необработанных данных:

+-------+------+-------+-------+---------+
| Group | born | 1-20  | 20-65 | 65+     |
+-------+------+-------+-------+---------+
|     1 | yes  | yes   | yes   | yes     |
|     1 | yes  | yes   | yes   |         |
|     1 | yes  |       |       |         |
|     1 | yes  | yes   |       |         |
|     2 | yes  | yes   | yes   | yes     |
|     2 | yes  | yes   | yes   |         |
|     2 | yes  | yes   |       |         |
|     2 | yes  |       |       |         |
|     2 | yes  | yes   |       | yes     |
|     3 | yes  |       |       |         |
|     3 | yes  | yes   |       |         |
|     3 | yes  | yes   | yes   | yes     |
|     3 | yes  |       |       |         |
+-------+------+-------+-------+---------+

Итак, я делал несколько запросов:

Select count(born) AS Alive, count(1-20) AS Child, count(20-65) AS Adult, count(65+) AS Elderly
FROM table
WHERE Group = "1";

Затем я получаю свою статистику для Группы 1:

+-------+-------+-------+---------+
| Alive | Child | Adult | Elderly |
+-------+-------+-------+---------+
|     4 |     3 |     2 |       1 |
+-------+-------+-------+---------+

Затем я делаю это для групп 2 - n и вручную ввожу результаты в другую таблицу. Я подхожу к тому моменту, когда я написал более 100 из них за день, поэтому хотел бы создать серию экспортируемых таблиц, которые отображали бы такую ​​информацию:

+---------+---+---+---+
|  Group  | 1 | 2 | 3 |
+---------+---+---+---+
| born    | 4 | 5 | 4 |
| child   | 3 | 4 | 2 |
| adult   | 2 | 2 | 1 |
| elderly | 1 | 1 | 1 |
+---------+---+---+---+

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

Заранее спасибо!

1 Ответ

1 голос
/ 05 мая 2020

Вы просто хотите group by?

Select [group], count(born) AS Alive, count([1-20]) AS Child, count([20-65]) AS Adult, count([65+]) AS Elderly
FROM table
GROUP BY [group];

Обратите внимание, что group - очень плохое имя для столбца, потому что это ключевое слово SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...