当前位置:编程学习 > JAVA >>

SQL查询


create table LYGRESCUE.DISTRESS
(
  GUID          VARCHAR2(32) not null,
  CLIENT_ID     VARCHAR2(16) not null,
  SERVER_ID     VARCHAR2(16) not null,
  DISTRESS_TIME DATE not null,
  DISTRESS_LON  VARCHAR2(32) not null,
  DISTRESS_LAT  VARCHAR2(32) not null,
  CREATE_TIME   DATE not null,
  VIEW_TAG      VARCHAR2(32)
)



insert into distress (GUID, CLIENT_ID, SERVER_ID, DISTRESS_TIME, DISTRESS_LON, DISTRESS_LAT, CREATE_TIME, VIEW_TAG)
values ('8a8a8a8a3754fc020137550a669e0014', '2095729', '455763', to_date('16-05-2012 17:45:04', 'dd-mm-yyyy hh24:mi:ss'), '119°44"42.1''', '34°51"42.0''', to_date('16-05-2012 17:46:14', 'dd-mm-yyyy hh24:mi:ss'), '-1');

insert into distress (GUID, CLIENT_ID, SERVER_ID, DISTRESS_TIME, DISTRESS_LON, DISTRESS_LAT, CREATE_TIME, VIEW_TAG)
values ('8a8a8a8a37550e3d013755178a63000b', '2095729', '455763', to_date('16-05-2012 17:59:25', 'dd-mm-yyyy hh24:mi:ss'), '119°39"27.8''', '34°48"02.1''', to_date('16-05-2012 18:00:35', 'dd-mm-yyyy hh24:mi:ss'), '-1');

insert into distress (GUID, CLIENT_ID, SERVER_ID, DISTRESS_TIME, DISTRESS_LON, DISTRESS_LAT, CREATE_TIME, VIEW_TAG)
values ('8a8a8a8a375518d90137551a8f470004', '2095729', '455763', to_date('16-05-2012 18:02:43', 'dd-mm-yyyy hh24:mi:ss'), '119°38"06.0''', '34°47"23.6''', to_date('16-05-2012 18:03:53', 'dd-mm-yyyy hh24:mi:ss'), '-1');

insert into distress (GUID, CLIENT_ID, SERVER_ID, DISTRESS_TIME, DISTRESS_LON, DISTRESS_LAT, CREATE_TIME, VIEW_TAG)
values ('8a8a8a8a37552c570137552cafe70001', '2095729', '455763', to_date('16-05-2012 18:22:31', 'dd-mm-yyyy hh24:mi:ss'), '119°29"30.7''', '34°44"33.9''', to_date('16-05-2012 18:23:41', 'dd-mm-yyyy hh24:mi:ss'), '-1');

insert into distress (GUID, CLIENT_ID, SERVER_ID, DISTRESS_TIME, DISTRESS_LON, DISTRESS_LAT, CREATE_TIME, VIEW_TAG)
values ('8a8a8a8a37550e3d0137551484480007', '2095729', '455763', to_date('16-05-2012 17:56:07', 'dd-mm-yyyy hh24:mi:ss'), '119°40"45.2''', '34°48"45.9''', to_date('16-05-2012 17:57:17', 'dd-mm-yyyy hh24:mi:ss'), '-1');

insert into distress (GUID, CLIENT_ID, SERVER_ID, DISTRESS_TIME, DISTRESS_LON, DISTRESS_LAT, CREATE_TIME, VIEW_TAG)
values ('8a8a8a8a37552c570137552fb5570003', '2095729', '455763', to_date('16-05-2012 18:25:49', 'dd-mm-yyyy hh24:mi:ss'), '119°27"56.7''', '34°44"42.6''', to_date('16-05-2012 18:26:59', 'dd-mm-yyyy hh24:mi:ss'), '-1');

insert into distress (GUID, CLIENT_ID, SERVER_ID, DISTRESS_TIME, DISTRESS_LON, DISTRESS_LAT, CREATE_TIME, VIEW_TAG)
values ('402881e73757bfe501375896e17b0020', '2095729', '455763', to_date('17-05-2012 10:17:22', 'dd-mm-yyyy hh24:mi:ss'), '119°48"48.7''', '34°52"11.4''', to_date('17-05-2012 10:18:32', 'dd-mm-yyyy hh24:mi:ss'), '1');

insert into distress (GUID, CLIENT_ID, SERVER_ID, DISTRESS_TIME, DISTRESS_LON, DISTRESS_LAT, CREATE_TIME, VIEW_TAG)
values ('402881e73757bfe501375881bb5c0007', '2095729', '455763', to_date('17-05-2012 09:54:16', 'dd-mm-yyyy hh24:mi:ss'), '119°42"23.8''', '34°49"18.1''', to_date('17-05-2012 09:55:26', 'dd-mm-yyyy hh24:mi:ss'), '1');

insert into distress (GUID, CLIENT_ID, SERVER_ID, DISTRESS_TIME, DISTRESS_LON, DISTRESS_LAT, CREATE_TIME, VIEW_TAG)
values ('402881e73757bfe501375887c65b000b', '2095729', '455763', to_date('17-05-2012 10:00:52', 'dd-mm-yyyy hh24:mi:ss'), '119°44"52.7''', '34°50"28.4''', to_date('17-05-2012 10:02:02', 'dd-mm-yyyy hh24:mi:ss'), '1');

insert into distress (GUID, CLIENT_ID, SERVER_ID, DISTRESS_TIME, DISTRESS_LON, DISTRESS_LAT, CREATE_TIME, VIEW_TAG)
values ('402881e73757bfe50137588dd13b0015', '2095729', '455763', to_date('17-05-2012 10:07:28', 'dd-mm-yyyy hh24:mi:ss'), '119°46"55.3''', '34°51"35.3''', to_date('17-05-2012 10:08:38', 'dd-mm-yyyy hh24:mi:ss'), '1');

insert into distress (GUID, CLIENT_ID, SERVER_ID, DISTRESS_TIME, DISTRESS_LON, DISTRESS_LAT, CREATE_TIME, VIEW_TAG)
values ('402881e73757bfe501375893dc0b001d', '2095729', '455763', to_date('17-05-2012 10:14:04', 'dd-mm-yyyy hh24:mi:ss'), '119°48"15.8''', '34°51"52.2''', to_date('17-05-2012 10:15:14', 'dd-mm-yyyy hh24:mi:ss'), '1');

insert into distress (GUID, CLIENT_ID, SERVER_ID, DISTRESS_TIME, DISTRESS_LON, DISTRESS_LAT, CREATE_TIME, VIEW_TAG)
values ('402881e73757bfe501375884c0fb0009', '2095729', '455763', to_date('17-05-2012 09:57:34', 'dd-mm-yyyy hh24:mi:ss'), '119°43"31.6''', '34°49"56.2''', to_date('17-05-2012 09:58:44', 'dd-mm-yyyy hh24:mi:ss'), '1');

insert into distress (GUID, CLIENT_ID, SERVER_ID, DISTRESS_TIME, DISTRESS_LON, DISTRESS_LAT, CREATE_TIME, VIEW_TAG)
values ('402881e73757bfe50137588acbcb000e', '2095729', '455763', to_date('17-05-2012 10:04:10', 'dd-mm-yyyy hh24:mi:ss'), '119°46"02.9''', '34°51"01.1''', to_date('17-05-2012 10:05:20', 'dd-mm-yyyy hh24:mi:ss'), '1');

insert into distress (GUID, CLIENT_ID, SERVER_ID, DISTRESS_TIME, DISTRESS_LON, DISTRESS_LAT, CREATE_TIME, VIEW_TAG)
values ('402881e73757bfe501375890d6ab0017', '2095729', '455763', to_date('17-05-2012 10:10:46', 'dd-mm-yyyy hh24:mi:ss'), '119°47"39.5''', '34°51"47.9''', to_date('17-05-2012 10:11:56', 'dd-mm-yyyy hh24:mi:ss'), '1');

insert into distress (GUID, CLIENT_ID, SERVER_ID, DISTRESS_TIME, DISTRESS_LON, DISTRESS_LAT, CREATE_TIME, VIEW_TAG)
values ('8a8a8a8a3754fc0201375504SDAS012s', '100010', '455763', to_date('03-06-2012 17:40:42', 'dd-mm-yyyy hh24:mi:ss'), '120°45"49.4''', '35°03"21.7''', to_date('03-06-2012 17:40:53', 'dd-mm-yyyy hh24:mi:ss'), '1');

insert into distress (GUID, CLIENT_ID, SERVER_ID, DISTRESS_TIME, DISTRESS_LON, DISTRESS_LAT, CREATE_TIME, VIEW_TAG)
values ('8a8a8a8a3754S20201375504SDAS0ssS', '100009', '455763', to_date('03-06-2012 17:40:22', 'dd-mm-yyyy hh24:mi:ss'), '120°45"43.4''', '35°03"39.7''', to_date('03-06-2012 17:40:33', 'dd-mm-yyyy hh24:mi:ss'), '1');

insert into distress (GUID, CLIENT_ID, SERVER_ID, DISTRESS_TIME, DISTRESS_LON, DISTRESS_LAT, CREATE_TIME, VIEW_TAG)
values ('8a8a8a8a3754fc0201375504SDAS011S', '100008', '455763', to_date('03-06-2012 17:40:12', 'dd-mm-yyyy hh24:mi:ss'), '120°45"27.4''', '35°02"41.7''', to_date('03-06-2012 17:40:41', 'dd-mm-yyyy hh24:mi:ss'), '1');

insert into distress (GUID, CLIENT_ID, SERVER_ID, DISTRESS_TIME, DISTRESS_LON, DISTRESS_LAT, CREATE_TIME, VIEW_TAG)
values ('8a8a8a8a37SSDc0201375504SDAS0156', '100007', '455763', to_date('03-06-2012 17:39:45', 'dd-mm-yyyy hh24:mi:ss'), '120°45"52.4''', '35°02"52.7''', to_date('03-06-2012 17:40:17', 'dd-mm-yyyy hh24:mi:ss'), '1');

insert into distress (GUID, CLIENT_ID, SERVER_ID, DISTRESS_TIME, DISTRESS_LON, DISTRESS_LAT, CREATE_TIME, VIEW_TAG)
values ('8a8a8a8a3S54fc0ds1375504SDAS01AS', '100006', '455763', to_date('03-06-2012 17:39:52', 'dd-mm-yyyy hh24:mi:ss'), '120°45"37.4''', '35°02"24.7''', to_date('03-06-2012 17:40:27', 'dd-mm-yyyy hh24:mi:ss'), '1');

insert into distress (GUID, CLIENT_ID, SERVER_ID, DISTRESS_TIME, DISTRESS_LON, DISTRESS_LAT, CREATE_TIME, VIEW_TAG)
values ('8a8a8a8a3754fc0201375504SDAS01A5', '100005', '455763', to_date('03-06-2012 17:39:24', 'dd-mm-yyyy hh24:mi:ss'), '120°45"32.4''', '35°01"21.7''', to_date('03-06-2012 17:39:33', 'dd-mm-yyyy hh24:mi:ss'), '1');

insert into distress (GUID, CLIENT_ID, SERVER_ID, DISTRESS_TIME, DISTRESS_LON, DISTRESS_LAT, CREATE_TIME, VIEW_TAG)
values ('8a8a8a8a3754fc02013A5504SDAS01A2', '100004', '455763', to_date('03-06-2012 17:39:28', 'dd-mm-yyyy hh24:mi:ss'), '120°45"21.4''', '35°01"46.7''', to_date('03-06-2012 17:39:31', 'dd-mm-yyyy hh24:mi:ss'), '1');

insert into distress (GUID, CLIENT_ID, SERVER_ID, DISTRESS_TIME, DISTRESS_LON, DISTRESS_LAT, CREATE_TIME, VIEW_TAG)
values ('8a8a8a8a3754fc02013755045bbe01AS', '100003', '455763', to_date('03-06-2012 17:39:22', 'dd-mm-yyyy hh24:mi:ss'), '120°45"02.4''', '35°01"39.7''', to_date('03-06-2012 17:39:27', 'dd-mm-yyyy hh24:mi:ss'), '1');

insert into distress (GUID, CLIENT_ID, SERVER_ID, DISTRESS_TIME, DISTRESS_LON, DISTRESS_LAT, CREATE_TIME, VIEW_TAG)
values ('8a8a8a8a3754fc02013755045bbe0103', '100002', '455763', to_date('03-06-2012 17:39:11', 'dd-mm-yyyy hh24:mi:ss'), '120°44"56.4''', '35°01"27.7''', to_date('03-06-2012 17:39:17', 'dd-mm-yyyy hh24:mi:ss'), '1');

insert into distress (GUID, CLIENT_ID, SERVER_ID, DISTRESS_TIME, DISTRESS_LON, DISTRESS_LAT, CREATE_TIME, VIEW_TAG)
values ('8a8a8a8a3754fc02013755045bbe0106', '100001', '455763', to_date('03-06-2012 17:38:31', 'dd-mm-yyyy hh24:mi:ss'), '120°44"50.4''', '35°01"33.7''', to_date('03-06-2012 17:39:43', 'dd-mm-yyyy hh24:mi:ss'), '1');

insert into distress (GUID, CLIENT_ID, SERVER_ID, DISTRESS_TIME, DISTRESS_LON, DISTRESS_LAT, CREATE_TIME, VIEW_TAG)
values ('8a8a8a8a3754fc02013755045bbe010d', '100000', '455763', to_date('03-06-2012 17:38:28', 'dd-mm-yyyy hh24:mi:ss'), '120°44"40.4''', '35°01"23.7''', to_date('03-06-2012 17:39:38', 'dd-mm-yyyy hh24:mi:ss'), '1');


想要的结果。
1.CLIENT_ID要唯一的。
2.VIEW_TAG为“1”的。
3.DISTRESS_TIME最小的。
4.按VIEW_TAG为“1”时,DISTRESS_TIME倒序排序。
5.全部列结果都要。

随机给出五个CLIENT_ID,查询VIEW_TAG为1时,每个独立CLIENT_ID的最小DISTRESS_TIME值,按DISTRESS_TIME倒序排列。

我当前的SQL不能满足按DISTRESS_TIME倒序排列如下:

select * from distress t where not exists (select * from distress where client_id = t.client_id and view_tag = t.view_tag and distress_time<t.distress_time) and client_id in ('2095729','100001','100002','100003','100004') and view_tag = '1' 


--------------------编程问答-------------------- 加上order by
select * from distress t 
 where not exists (select 1 from distress 
                    where client_id = t.client_id 
                      and view_tag = t.view_tag 
                      and distress_time<t.distress_time) 
   and client_id in ('2095729','100001','100002','100003','100004') 
   and view_tag = '1' 
 order by t.distress_time desc
  --------------------编程问答--------------------
引用 1 楼  的回复:
加上order by
SQL code
select * from distress t 
 where not exists (select 1 from distress 
                    where client_id = t.client_id 
                      and view_tag = t.view_tag 
        ……


最后的排序条件是VIEW_TAG为1时的最大时间那条记录,直接这么排不行啊,只把这五条记录按倒序排列了 --------------------编程问答-------------------- 大概好像明白你的意思,
就是说按原始数据的DISTRESS_TIME倒序排列,而不是选出来的数据的DISTRESS_TIME倒序排列,对吧?


select t.* 
  from (select client_id, view_tag, 
               max(distress_time) as max_distress_time,
               min(distress_time) as min_distress_time
          from distree where view_tag='1' group by client_id, view_tag) s,
       distress t
 where s.client_id = t.client_id
   and s.view_id = t.view_id
   and s.min_distress_time = t.distress_time
   and s.client_id in ('2095729','100001','100002','100003','100004') 
 order by s.max_distress_time desc
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,