我有一个表像这样:我需要最新纪录联接(PostgreSQL的)
call_activity (
call_id TEXT,
activity_type TEXT,
activity_time TIMESTAMP,
PRIMARY KEY(call_id, activity_type, activity_time)
)
activity_type
可在约9种不同的字符串之一:
'started'
'completed' (about 5 variations on this)
'other' (these are the states that I want to display)
呼叫有一系列的事件,从'开始'开始,并在一个完成的事件(5个或更多可能的事件之一)中达到高潮。我需要用两列来看这个:第一列必须是一个调用的“开始”事件的活动时间,第二列必须是该调用的最近事件。此视图必须只有没有完成事件的调用。
我有一套嵌套连接,但它们很慢。我需要一个合理的最佳观点。谁能帮我?
您将call_id和activity_type作为TEXT的事实并不完全有助于提高性能。有没有任何理由让他们作为TEXT而不是,例如,varchar(或甚至整数/ bigint的call_id)? – ChssPly76 2009-09-18 19:28:26
撇开的类型 - 在哪个主题上,我同意你,顺便说一句 - 任何想法如何优化它原来的? – 2009-09-18 19:57:12
TEXT和varchar之间没有性能差异。一个整数显然会更快,但如果模型支持。 – 2009-09-19 14:19:59