小编BC *_*ats的帖子

选择一行具有不同的一列值

这是数据

id    name     start_date    end_date    merchant_id
===================================================
111   name1    25-nov-11    31-jan-12    9999
222   name2    23-nov-11    25-dec-11    9999
333   name3    25-nov-11    25-nov-12    9999
444   name4    20-nov-11    20-nov-11    9999
555   name5    25-nov-11    25-dec-11    8888
666   name6    19-oct-11    20-nov-11    8888
777   name7    20-nov-11    20-jun-12    8888
Run Code Online (Sandbox Code Playgroud)

我需要按start_date(desc)排序所有行,其中start_date<=todayend_date >=today每个限制1 merchant_id.这意味着如果查询找到多个行,则只返回第一行.


测试脚本

CREATE TABLE DEAL
(
  ID            VARCHAR2(40 BYTE)       NOT NULL,
  NAME          VARCHAR2(255 BYTE),
  START_DATE    DATE,
  END_DATE      DATE,
  MERCHANT_ID   NUMBER(22),
 CONSTRAINT DEAL PRIMARY KEY (ID)
);

INSERT ALL
INTO …
Run Code Online (Sandbox Code Playgroud)

sql oracle greatest-n-per-group

5
推荐指数
1
解决办法
8272
查看次数

标签 统计

greatest-n-per-group ×1

oracle ×1

sql ×1