|
|
|
|
|
для: Root
(26.05.2008 в 03:18)
| | Ну, может и не совсем повесил... ))
Нужно разложить по дням, сколько устройств (unitid) присылало отчеты. От каждого устройства может поступить от 0 до пары тысяч отчетов. Количество отчётов от каждого устройства нас НЕ интересует.
----
Спасибо за наводку, разобрался:
SELECT DISTINCT DATE( `dt` ) AS d, COUNT( DISTINCT `unitid` )
FROM `data`
GROUP BY d
|
| |
|
|
|
|
|
|
|
для: Root
(26.05.2008 в 03:07)
| | не понял я с этими unitid, нужно максимальное выбрать?
SELECT DISTINCT DATE(dt) AS d, MAX(unitid) FROM data GROUP BY d;
|
| |
|
|
|
|
|
|
|
для: Mehanik
(26.05.2008 в 02:49)
| | как это повесил?? :-)
SELECT DISTINCT DATE(dt) AS d, unitid FROM data GROUP BY d;
|
| |
|
|
|
|
|
|
| Добрый день, господа.
Есть такая (условная) таблица с отчётами некоторых устройств (unitid) привязаных к дате/времени (dt):
CREATE TABLE IF NOT EXISTS `data` (
`unitid` int(11) NOT NULL default '0',
`dt` timestamp NOT NULL default '0000-00-00 00:00:00',
KEY `unitid` (`unitid`),
KEY `fdt` (`dt`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
INSERT INTO `data` (`unitid`, `dt`) VALUES
(2, '2008-03-20 20:36:20'),
(2, '2008-03-20 20:35:57'),
(1, '2008-03-20 20:35:35'),
(1, '2008-03-21 13:09:07'),
(1, '2008-03-21 13:08:37'),
(2, '2008-03-22 22:35:35'),
(1, '2008-03-22 22:40:07'),
(1, '2008-03-24 13:08:37'),
(2, '2008-03-24 14:35:35'),
(1, '2008-03-24 14:09:07'),
(3, '2008-03-24 14:08:37'),
(3, '2008-03-24 15:06:35');
Задача. Получить таблицу с количеством отчётов от устройств (уникальных) по дате. Для приведённых данных должна получиться таблица:
2008-03-20 2
2008-03-21 1
2008-03-22 2
2008-03-24 3
|
а ещё лучше:
2008-03-20 2
2008-03-21 1
2008-03-22 2
2008-03-23 0
2008-03-24 3
|
Запутался с группировками. Пару раз повесил мускул..... (((( | |
|
|
|
|