时间:2010-07-26 17:29:59

标签: database postgresql database-design data-structures

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

答案 2 :(得分:1)

好像你没有任何要求:

从时间戳更改为日期部分是一件大事。 你不想做一个时间分析?    喜欢什么是维持“foo”发生的最佳时间进行维护。

你不担心尺寸?你说你有数百万条记录(就像那些记录很多),然后你通过一个额外的列扩展每一行。一列不是很多,直到行数突然增加,然后你真的要考虑每一列。

所以要获得过去3天的事件总和,你宁愿这样做

SELECT SUM(totcnt) FROM (
SELECT MAX(Total_count) as totcnt from table where date = today and event = 'Foo'
UNION ALL
SELECT MAX(Total_count) from table where date = today-1 and event = 'Foo'
UNION ALL
SELECT MAX(Total_count) from table where date = today-2 and event = 'Foo'
)

是的,这看起来比>

容易得多
SELECT COUNT(*) FROM table WHERE DATE BETWEEN today-2 and today and event = 'foo'

考虑添加行所需的触发器...获取当天和事件的最大值并在每次插入时添加一个......

不确定你有什么样的服务器,但我在285ms内总计了1百万行。那么......你将拥有多少百万,你需要多少时间来总结它们,每次都是相同的日期范围还是完全随机的?