【发布时间】:2017-04-25 09:13:12
【问题描述】:
我们有一个如下所述的场景,需要输入以获得最佳逻辑。 数据库是sql server 2012。
我有一个表 abc,其中包含列 'a' 、 'b' 、 'c' 和日期字段 'd'。 如果表 abc 有 10 条不同日期的记录,这是最好的优化方式 有列 'a' , 'b' , 'c' 和 'd' 其中“d”只是整个记录集的最大日期。
例如如果下面是表abc数据,
a b c d
a1 b1 c1 01-02-2017
a2 b2 c2 02-02-2017
a3 b3 c3 10-02-2017
a4 b4 c4 04-02-2017
what we need is,
a b c d
a1 b1 c1 10-02-2017
a2 b2 c2 10-02-2017
a3 b3 c3 10-02-2017
a4 b4 c4 10-02-2017
这里我们需要复制所有记录的最大日期。
到目前为止我们尝试过的事情。
选项 1。Select a , b, c, (Select max(d) from abc) d from abc
选项 2。
Select a , b, c, max.max_D from abc
join (Select max(d) max_D from abc) max on 1=1
注意:这只是例如我们的实际需求是相同的,但是我们有超过 10 个连接,并且表中的数据非常庞大。
请提出建议。
【问题讨论】:
-
如果你不确定你给定的数据,我认为很难给你一个解决方案..
标签: sql-server database-performance query-performance