67 / 67 / 6
Регистрация: 26.03.2010
Сообщений: 546
|
|
1 | |
Статистика пользователей по возрасту10.06.2010, 03:12. Показов 1585. Ответов 15
Метки нет (Все метки)
Доброго времени суток, хотел бы сделать статустику пользователей по возросту. К примеру:
до 18 лет - от 18 до 23 - -----||----- Проблема в том, что в поле дата рождения записана как "1.1.1950". Вопрос вот в чем, как обработать базу так, чтобы он брал из неё только год, а не день, месяц и год. Просто точная статистика не нужна, нужна примерная. На теории это делается через split как я понял, вытаскивается год и минусуется из текущего, а дальше через if. Но как split прикрутить к запросу и после этого ещё сложить полученные результаты и предоставить не могу понять Помогите пожалуйста...
0
|
10.06.2010, 03:12 | |
Ответы с готовыми решениями:
15
Статистика пользователей - как идентифицировать пользователей с одинаковыми именами Как провести сортировку после выбора данных пользователей по возрасту? Повседневная статистика пользователей Статистика пользователей: показывать, сколько пользователей работают сейчас в программе |
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
|
||||||
10.06.2010, 08:31 | 2 | |||||
Можно использовать YEAR(<поле с датой>)
Или лучше использовать DATE_ADD(<поле с датой>,INTERVAL <сколько лет> YEAR)
1
|
67 / 67 / 6
Регистрация: 26.03.2010
Сообщений: 546
|
||||||
10.06.2010, 21:30 [ТС] | 3 | |||||
Спасибо. А если сделать статистику в режиме он-лайн? тоесть на данный момент зарегестрировано столько-то пользователей до 18, столько то от 18 до 23, от 23 и т.д.?
я представляю это примерно так:
0
|
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
|
||||||
10.06.2010, 21:43 | 4 | |||||
Не понял... это не в виде DATE, а просто текст? CHAR или VARCHAR какой-то? Это будет гораздо сложнее и будет работать гораздо медленнее.
Старайся не использовать такие конструкции. Лучше сделать
1
|
67 / 67 / 6
Регистрация: 26.03.2010
Сообщений: 546
|
|
10.06.2010, 21:47 [ТС] | 5 |
да, именно varchar. Просто когда делал сайт, не задумывался и записывал для более легкого вывода. Спасибо.
Не заметил, так тут не отделено 3 значение
0
|
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
|
|||||||||||
10.06.2010, 22:16 | 6 | ||||||||||
Можешь переделать всё в DATE... выполни по очереди 3 такие запроса
1
|
67 / 67 / 6
Регистрация: 26.03.2010
Сообщений: 546
|
||||||
10.06.2010, 22:46 [ТС] | 7 | |||||
В таком случае получилось, что дата отображается как год, месяц и день, правильно? или год день и месяц?
В общем получилось Остался вопрос, на сервере 5 человек, сделал так:
До 18: 5 От 18 до 23: 5 От 23 до 30: 4 От 30 до 50: 4 После 50: 0 Хотя до 18 Нет пользователей
0
|
10.06.2010, 23:15 | 8 | |||||
ГГГГММДД - год месяц день, если память не изменяет
А по поводу запроса, попробуйте так:
0
|
67 / 67 / 6
Регистрация: 26.03.2010
Сообщений: 546
|
|||||||||||
10.06.2010, 23:21 [ТС] | 9 | ||||||||||
Хотя я сделал. Сделал запрос наобщее кол-во пользователей и вычел из него получившиеся. Спасибо
romchiksoad, В твоем случае он показывает вот так: До 18: 5 От 18 до 23: 5 От 23 до 30: 5 От 30 до 50: 5 После 50: 5 Я сделал вот так:
А если ещё сделать в % соотношении то так:
Соотношение в %: До 18: 0% От 18 до 23: 0% От 23 до 30: 20% От 30 до 50: 20% После 50: 100% Соотношение в кол-ве: До 18: 0 От 18 до 23: 0 От 23 до 30: 1 От 30 до 50: 1 После 50: 5 Все как я и хотел. Спасибо
0
|
67 / 67 / 6
Регистрация: 26.03.2010
Сообщений: 546
|
|
10.06.2010, 23:26 [ТС] | 12 |
хм, хотя я заметил, что у меня статистика не правильная)
0
|
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
|
|||||||||||
10.06.2010, 23:28 | 13 | ||||||||||
И опять же не надо все строки выдергивать из таблицы, только для того, что бы их число посмотреть. Это очень не оптимально.
Если у тебя таблица MyISAM, то можно
0
|
67 / 67 / 6
Регистрация: 26.03.2010
Сообщений: 546
|
|
10.06.2010, 23:38 [ТС] | 14 |
MyISAM у меня. Я тут посмотрел... Он промежуток получается не счтает от и до, а берет чисто до.
До 18: 0 От 18 до 23: 0 От 23 до 30: 1 От 30 до 50: 1 После 50: 5 Как изменить интеррвал? через and?
0
|
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
|
||||||
10.06.2010, 23:44 | 15 | |||||
Можно построить немного по другому запрос:
Проблема будет только в том, случае, если кому-то в этот день исполнилось 18 лет (или любое другое пограничное количество лет)... тогда он отнесёт его к двум категориям.
1
|
67 / 67 / 6
Регистрация: 26.03.2010
Сообщений: 546
|
||||||
11.06.2010, 00:29 [ТС] | 16 | |||||
0
|
11.06.2010, 00:29 | |
11.06.2010, 00:29 | |
Помогаю со студенческими работами здесь
16
статистика пользователей и роботов Статистика Пользователей PHP Статистика времени работы пользователей Статистика работы пользователей с базой Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |