|
Тема |
Re: GROUP BY date_column [re: mr.vain] |
|
Автор |
salle (един такъв) |
|
Публикувано | 24.08.06 18:07 |
|
|
"при положение, че периода е динамичен, с чести заявки към сървъра"
Именно
"налей" една статична таблица с дати, сложи и индекс по датата и действай.
Ето ти един "обълнат" вариант:
CREATE TEMPORARY TABLE temp (myDate DATE PRIMARY KEY, mySum BIGINT NOT NULL DEFAULT 0)
SELECT SUM(int_field) AS mySum, date_field AS myDate
FROM myTable
WHERE date_field BETWEEN '2006-08-01' AND '2006-08-20'
GROUP BY date_field
ORDER BY NULL;
INSERT IGNORE INTO temp (myDate) VALUES('2006-08-01'), ('2006-08-02'), ('2006-08-03'), ('2006-08-04'), ('2006-08-05'), ('2006-08-06'), ('2006-08-07'), ('2006-08-08'), ('2006-08-09'), ('2006-08-10'), ('2006-08-12'), ('2006-08-12'), ('2006-08-13'), ('2006-08-14'), ('2006-08-15'), ('2006-08-16'), ('2006-08-17'), ('2006-08-18'), ('2006-08-19'), ('2006-08-20');
SELECT * FROM temp ORDER BY myDate;;
DROP TABLE temp;
Честно казано аз бих го направил в клиентската част.
|
| |
|
|
|