MySQL для создания Age Pyramid - PullRequest
       11

MySQL для создания Age Pyramid

3 голосов
/ 05 октября 2010

Как написать запрос, подходящий для создания возрастной пирамиды, например: alt text

У меня есть таблица с полем DATE, содержащим их день рождения, и полем BOOL, содержащим пол (мужской = 0, женский= 1)Любое поле может быть НЕДЕЙСТВИТЕЛЬНО.

Я не могу понять, как обрабатывать дни рождения и распределять их по группам по 10 лет.

РЕДАКТИРОВАТЬ:

В идеалеОсь X будет процентом, а не тысячами:)

1 Ответ

2 голосов
/ 05 октября 2010
SELECT  FLOOR((EXTRACT(YEAR FROM FROM_DAYS(DATEDIFF(NOW(), birthday))) - 4) / 10) AS age, gender, COUNT(*)
FROM    mytable
GROUP BY
        age, gender

-1 в возрасте означает 0-4, 0 означает 4-14 и т. Д.

Этот запрос может оставить пробелы, если в данной возрастной группе нет людей.

То же самое с процентами (от общей численности населения):

SELECT  FLOOR((EXTRACT(YEAR FROM FROM_DAYS(DATEDIFF(NOW(), birthday))) - 4) / 10) AS age, gender,
        COUNT(*) /
        (
        SELECT  COUNT(*)
        FROM    mytable
        )
FROM    mytable
GROUP BY
        age, gender
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...