Sql 从设施列表中获取子数据
我正在尝试写一个查询,如果可能的话,希望得到一些帮助。提前谢谢 我有一个从公共来源获取的设施数据表(约10万行)。这些数据包含了几个我认为是同一个地方(同名、城市、州)的记录,它们只是有不同的套餐号码。另一个有趣的代码是,我在数据上有一个选择计数器,每当有人选择其中一个设施时,我都会增加这个计数器。这样,我可以使用选择计数和其他一些权重计算,使结果在列表中显示得更高 我试图做的是编写一个查询,当有人输入搜索查询时,它将只显示设施的一条记录,即选择计数最高的记录,并忽略其余记录 注意:我不想对数据进行任何预处理,因为它将每月重新加载 谢马: 身份证件 名称 地址1 地址2 城市 陈述 拉链 电话 选择计数 示例搜索:“女性” 我想要的是一个包含1,2,5,6的结果集 1,3,4,7是相同的,因此返回顶部选择计数。6号和8号也一样 我确信在这里的某个地方有一个having和top子句,但我没能让它做我想做的事情 想法?怎么样Sql 从设施列表中获取子数据,sql,sql-server-2008,Sql,Sql Server 2008,我正在尝试写一个查询,如果可能的话,希望得到一些帮助。提前谢谢 我有一个从公共来源获取的设施数据表(约10万行)。这些数据包含了几个我认为是同一个地方(同名、城市、州)的记录,它们只是有不同的套餐号码。另一个有趣的代码是,我在数据上有一个选择计数器,每当有人选择其中一个设施时,我都会增加这个计数器。这样,我可以使用选择计数和其他一些权重计算,使结果在列表中显示得更高 我试图做的是编写一个查询,当有人输入搜索查询时,它将只显示设施的一条记录,即选择计数最高的记录,并忽略其余记录 注意:我不想对数据
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
)