Подтчет кол-ва записей по каждой позиции в таблице

Эдди

Новичок
Подтчет кол-ва записей по каждой позиции в таблице

Не соображу, как с минимумом запросов выбрать следующее:

В таблице записи есть записи:
pos1
pos1
pos2
pos1
pos3
pos3
pos1

Надо получить:
pos1 = 4
pos2 = 1
pos3 = 2

Можно одним запросом?
Очень накладно делать отдельный запрос на каждую позицию.

Подскажите хоть, где искать или с какой стороны подойти?

-~{}~ 03.02.09 20:57:

mysql 5 (php4)
 

Эдди

Новичок
Иными словами, надо подсчитать количество входов пользователей в систему.
Каждый вход каждого пользователя добавляет в таблицу запись.
 

x-yuri

Новичок
только может тебе какую-нибудь нормализацию провести стоит?
 

Эдди

Новичок
У меня, к примеру, 2 таблицы.
Пользователи и входы в систему , связанные по user_id.

-~{}~ 03.02.09 21:05:

Можно привести простейший пример? Не соображу.
 

x-yuri

Новичок
ну ты там просто какие-то pos1, ... писал. делай
GROUP BY users.user_id
 

Эдди

Новичок
ОК. Мерси. С прошлым запросом ты мне помог.
Надеюсь, и с этим будет ОК :)
 

Активист

Активист
Команда форума
Эдди
У тебя ресурсы та казенные?

Зачем тебе group by для такой малозначительной задачи, да еще и сумма по группе.

Задача малозначительная, а вот ресурсов кушать будет уйму. Я тебе советую завести отдельную таблицу (или добавить столбец в существующую) и хранить там количество входов.
 

Эдди

Новичок
Активист
Ресурсы в данном случае не интересуют особо.
Это внурненняя зона сервера, куда входит только админ.
И в одном скрипте выполняется только одна задача.

Мне кажется, увеличение количества таблиц, которых уже за сотню, больше ресурсов кушает. (а может не кушает, но меня это уже беспокоит)

-~{}~ 03.02.09 21:26:

А вот ресурсы будет реально кушать система, когда я выведу один запрос по юзерам, а потом по каждому юзеру буду считать количество его входов в систему через count
 

Активист

Активист
Команда форума
Эдди
Хозяин барин. Количество таблиц в бд не имеет принципиального значения. Вообще - нужно учится делать правильную архитектуру БД изначально, а то привыкнешь и будет потом писать "долгие запросы" и сооружать "гавно архитектуру БД".

ЗЫ: не в обиду.
 

Эдди

Новичок
Автор оригинала: Активист
Вообще - нужно учится делать правильную архитектуру БД изначально
Об этом забочусь прежде всего.
ПРосто не считаю, что сохраняя вход пользователя в систему в таблице, скажем, entries, мне надо увеличивать количество входов в новой таблице entry_num, скажем.
Лишняя работа.

-~{}~ 03.02.09 23:28:

Мне кажется, что это не вписывается в нормальную архитектуру нормальной БД.
КОгда количество можно найти из существующей таблицы, зачем создавать дополнительную?
Принцип излишества данных
 

x-yuri

Новичок
Мне кажется, что это не вписывается в нормальную архитектуру нормальной БД.
КОгда количество можно найти из существующей таблицы, зачем создавать дополнительную?
Принцип излишества данных
Это оптимизация, посмотри как быстро работает GROUP BY. Если скорость устраивать не будет, надо будет искать альтернативные варианты
 

Эдди

Новичок
Автор оригинала: x-yuri
Это оптимизация, посмотри как быстро работает GROUP BY. Если скорость устраивать не будет, надо будет искать альтернативные варианты
Так я и говорю, что со скоростью вообще нет проблем.
Маленький скрипт и один запрос, которые выводят, сколько раз какой пользователь входил в систему.
Считаю нецелесообразным создавать доп. таблицу.

-~{}~ 03.02.09 23:33:

Как говорит Активист

-~{}~ 03.02.09 23:39:

Был бы здесь *****, сказал бы.
Ну один запрос выполняется одну миллисекунду.
А другой одну и одну тысячную.
Стоит ли огород городить?:)

-~{}~ 03.02.09 23:39:

Ну вы поняли, о ком речь, хоть и забанен
 
Сверху