有选择地删除共享日期的行,留下当天的最后一行

时间:2017-04-21 16:06:23

标签: sql date duplicates

我正在使用包含以下变量的表: 参考编号(相关事物的编号)。时间/日期戳。事件类型(编码为int)。

首先,我想要一些应用逻辑的sql代码: '如果同一参考号在同一天发生多个事件,请取出除最后一个'

之外的所有事件

其次,我想要一些代码(在执行上述操作后)应用逻辑: '如果某个事件与该参考号的上一个事件的类型相同,请将其取出。'

你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

一般来说,当我必须解决这样的问题时,我会使用"优于"原理

e.g。

select reference_number, event_type, created_timestamp
from table_name best
left join table_name better_than on better_than.reference_number = best.reference_number and better_than.created_timestamp > best.created_timestamp
where better_than is null
group by best.event_type;

这样的查询是做什么的,确保没有什么比#34;更好。我在追求什么。我使用这种模式来消除各种各样的"重复"我不想要的记录。获得select语句后,您可以使用它作为指南来构建删除操作。

以上解决了您需要的第一部分。要删除重复的类型,请执行分组,你应该很高兴去找人。

e.g。

mydifferedboot.bootstrap({
  element: document,
  module: appname,
  options: {strictDi: true},
  resolve: {
    before: [
      {
        module: 'actualmoduletobeload',
        resolve: {
          NEWSERVER: ($http) => {

            'ngInject';
            return $http
              .get('asset/hello.json')
              .then((result) => result.data)
              .catch((err) => {
                $('#preloader>#status')

                  // if something goes wrong
                  .css('background-image', 'none')

                  //user-friendly error message
                  .html('<p ><b>Something went wrong!</b>  Please try refreshing the page.</p><br />Unable to get <code>asset/my.json</code>.<br /><br />');
              });
          }
        }
      }
    ]
  }
});