SQL查询按搜索量查找地区

时间:2019-02-20 07:38:19

标签: sql

编写一个SQL查询,该查询按搜索量对区域进行排名(如果搜索涉及多个区域,则每个区域 列表中的值被视为一次搜索)

enter image description here

1 个答案:

答案 0 :(得分:0)

首先用逗号分隔位置,然后插入新行

;WITH tmp(search_id, search_location, Location, String) AS
(
    SELECT
        search_id,
        search_location,
        LEFT(String, CHARINDEX(',', String + ',') - 1),
        STUFF(String, 1, CHARINDEX(',', String + ','), '')
    FROM YourTable
    UNION all

    SELECT
        search_id,
        search_location,
        LEFT(String, CHARINDEX(',', String + ',') - 1),
        STUFF(String, 1, CHARINDEX(',', String + ','), '')
    FROM tmp
    WHERE
        String > ''
)

SELECT
    search_id,
    search_location,
    Location
into #temp
FROM tmp

从上表中您可以得到计数

SELECT Location, COUNT(*) as [District Count]
FROM #temp
GROUP BY Location
ORDER BY COUNT(*) DESC