当前位置: 代码迷 >> Sql Server >> sql怎么利用查询出来的数据再次查询原表中的项
  详细解决方案

sql怎么利用查询出来的数据再次查询原表中的项

热度:21   发布时间:2016-04-24 09:06:29.0
sql如何利用查询出来的数据再次查询原表中的项
菜鸟一个,求各位大牛解答。
问题如下:
有一张表,表名为status;假设status表(里面有重复项)内容如下:
列名:    a     lon  lat
               1      11    12
               2      10    11
               3        9     10
                1       11    12

我想先统计a字段下各项的出现次数,并把lon,lat项也显示出来。
 想得到结果如下:
           a    出现次数   lon   lat
           1          2            11    12
            2         1            10    11
           3          1              9     10       
------解决思路----------------------
with temp as
(
select a, count(*)    出现次数
from status
group by a
)
select temp.*, t. lon, t.lat
from temp
inner join (select distinct * from status) t on t.a = temp.a
------解决思路----------------------
Temp是cte表格名,就是后面括号中选取的数据,放入这个temp表格

意义上类似于一个subselect,但是调用更方便,灵活

------解决思路----------------------
select distinct * from status
,(select a,count(a) as 出现次数 from status group by a) as b where status.a=b.a
  相关解决方案