求SQL聚类

来源:百度知道 编辑:UC知道 时间:2024/06/21 18:59:01
TABLE结构如下:
airline flight org_city cki_date iflt
CA 1234 PEK 2006-01-01 1
CA 3234 PEK 2006-01-02 1
SZ 1134 CAN 2006-01-01 1
SZ 1113 CAN 2006-01-01 0
SZ 1255 PEK 2006-01-02 1
SZ 1325 PEK 2006-01-03 1
SZ 1025 PEK 2006-01-04 1
SZ 1235 PEK 2006-01-05 1
SC 2204 PEK 2006-01-03 0
SELECT airline, iflt, flight, cki_date, org_city
FROM tbl_cstd
WHERE cki_date>=to_date('20060101', 'YYYYMMDD') and cki_date<=to_date('20060131', 'YYYYMMDD')
GROUP BY airline,iflt, flight, cki_date, org_city
ORDER BY airline;
之前是用这个SQL取出记录在code里做累加,如果出现同一个cki_date,同一个flight有可能有两条或多条记录,例如:
airline flight org_city cki_date iflt des_city
CA 1234 PEK 2006-01-01 0 CAN
CA 1234 PEK 2006-01-01 0 PVG
flight是1234的会从PEK到CAN然后从CAN到PVG,但数据库中记录的是两条,我现在就需要将这两条记录算作一条取出来,所以用到了G

排序改成这个试试group by airline,cki_date,flight

你想得到什么样的结果?如果你要将
airline flight org_city cki_date iflt des_city
CA 1234 PEK 2006-01-01 0 CAN
CA 1234 PEK 2006-01-01 0 PVG
这两条记录变成一条,那么des_city就不能参与分组,也不能出现在select 语句里