如何仅针对某些列选择不同的行?

时间:2015-08-30 18:20:17

标签: sql sql-server select join

我正在使用下面的选择

select 
  A.Bada, 
  B.Boom, 
  ' ' as '---', * ...

一路上有很多连接,现在我拥有了我需要的所有数据但是某些行重复了 Bada Boom 。这些并不是真正的完全重复,因为明星引入的某些值不同。但是,那些与我的情况无关。

我现在应用的解决方案只是明确地列出了有趣的列,但我想知道有一种平滑的方法来消除重复 Bada Boom 的行(只保留一次这样的行。)

1 个答案:

答案 0 :(得分:3)

大多数数据库都支持ANSI标准窗口和排名功能。因此,您可以在一组中选择具有相同值的行中的特定行或任意行:

select 
  t.bada,
  t.boom, 
  row_number() over (partition by bada, boom order by bada) as seqnum,
  t.*,
from table t

首先在原始表的分区上添加每行的序列号。类似行号,仅相对于所选列连续。一旦完成,就可以选择连续计数器的某个值,例如, 1。

order by

如果您想要一个特定的行 - 例如最新的行 - 那么请调整var tween = new Kinetic.Tween({ node: mynode, duration: 100, x: 100, y: 200, scaleX: 80, scaleY: 80, onFinish: function() { console.log("Tween finished"); } }); tween.play(); //The next lines should be executed after the onFinish-event console.log("This should be the first log"); console.log("Executed before 'Tween finished'"); .. do something e.g. play a sound 以获取该行。