Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从设施列表中获取子数据_Sql_Sql Server 2008 - Fatal编程技术网

Sql 从设施列表中获取子数据

Sql 从设施列表中获取子数据,sql,sql-server-2008,Sql,Sql Server 2008,我正在尝试写一个查询,如果可能的话,希望得到一些帮助。提前谢谢 我有一个从公共来源获取的设施数据表(约10万行)。这些数据包含了几个我认为是同一个地方(同名、城市、州)的记录,它们只是有不同的套餐号码。另一个有趣的代码是,我在数据上有一个选择计数器,每当有人选择其中一个设施时,我都会增加这个计数器。这样,我可以使用选择计数和其他一些权重计算,使结果在列表中显示得更高 我试图做的是编写一个查询,当有人输入搜索查询时,它将只显示设施的一条记录,即选择计数最高的记录,并忽略其余记录 注意:我不想对数据

我正在尝试写一个查询,如果可能的话,希望得到一些帮助。提前谢谢

我有一个从公共来源获取的设施数据表(约10万行)。这些数据包含了几个我认为是同一个地方(同名、城市、州)的记录,它们只是有不同的套餐号码。另一个有趣的代码是,我在数据上有一个选择计数器,每当有人选择其中一个设施时,我都会增加这个计数器。这样,我可以使用选择计数和其他一些权重计算,使结果在列表中显示得更高

我试图做的是编写一个查询,当有人输入搜索查询时,它将只显示设施的一条记录,即选择计数最高的记录,并忽略其余记录

注意:我不想对数据进行任何预处理,因为它将每月重新加载

谢马: 身份证件 名称 地址1 地址2 城市 陈述 拉链 电话 选择计数

示例搜索:“女性”

我想要的是一个包含1,2,5,6的结果集

1,3,4,7是相同的,因此返回顶部选择计数。6号和8号也一样

我确信在这里的某个地方有一个having和top子句,但我没能让它做我想做的事情

想法?

怎么样

WITH cteRowNum AS (
    SELECT ID, Name, City, State, [Selection Count],
           ROW_NUMBER() OVER(PARTITION BY Name, City, State ORDER BY [Selection Count] DESC) AS RowNum
        FROM YourTable
)
SELECT ID, Name, City, State, [Selection Count]
    FROM cteRowNum
    WHERE RowNum = 1;
select id, name, city, state, selcount from t 
where exists
(
  select 1 from
  (select name, city, state, max(selcount) selcount
     from t 
    group by name, city, state) s
  where s.name = t.name and s.city = t.city and s.state = t.state and s.selcount = t.selcount
)

我已经为此构建了一个示例来展示一个工作示例。

您能给我们展示一下您尝试使用的sql吗?哇!第一次在这里张贴海报,真不敢相信回复时间。非常感谢你来到西部!!!前几天我花的时间比我想的要长。你的答案很完美。谢谢你给我看SQL小提琴。伟大的工具!
select id, name, city, state, selcount from t 
where exists
(
  select 1 from
  (select name, city, state, max(selcount) selcount
     from t 
    group by name, city, state) s
  where s.name = t.name and s.city = t.city and s.state = t.state and s.selcount = t.selcount
)