读书人

这个SQL如何写

发布时间: 2012-03-26 15:46:55 作者: rapoo

这个SQL怎么写?
QD ZD SJ
-------- -------------------- --------------------
田林 桂林 8:00
田林 桂林 9:00
桂林 田林 8:00
桂林 田林 8:00
田林 宜山 8:00
宜山 田林 8:00

6 rows selected
统计这个表里面 的线路条数
起点和终点 一致的算一条
现在结果是两条

[解决办法]
select count(*) from 表名 group by QD,ZD

[解决办法]
select count(*) from (select qd,zd from tb group by qd,zd having count(*) > 1) t
[解决办法]
select count(distinct(case when QD > ZD then QD||ZD else ZD||QD end) )
from table
[解决办法]
已建表的SQL:

SQL code
select count(*)/2 from (select distinct QD,ZD from tbl_luxianunion select distinct ZD,QD from tbl_luxian) a
[解决办法]
探讨
已建表的SQL:

SQL code


select count(*)/2 from (
select distinct QD,ZD from tbl_luxian
union
select distinct ZD,QD from tbl_luxian
) a



功能,效率可能不太好~ 期待高手

[解决办法]
经测试可行:
select count(*) from (select rank() over(partition by QD,ZD
order by id) rank from 表名) n where n.rank = '2'

order by 后面 跟其他不会重复的字段。这样就是起点和终点一致的数据有n条也算作1条

读书人网 >Java Web开发

热点推荐