测试表
create table Test (
Id integer,
Store_N varchar(25),
Department varchar(25)
);
INSERT INTO Test (Id, Store_N, Department )
Values (25,'1','A'), (67,'1','A'), (34,'1','A'), (97,'1','C'),
(21,'1','C'), (268,'1','B'), (456,'2','A'), (349,'2','A'),
(935,'2','B'), (36,'3','B'), (637,'3','B'), (388,'3','B'),
(891,'3','B'), (344,'4','A'), (763,'4','A'), (836,'4','A')
SELECT * , ROW_NUMBER() OVER( Partition BY Store_N ORDER BY Store_N ) AS AA
FROM Test;
结果是
我需要排除所有只有一个部门并且每个商店都有唯一DISTINCT部门的商店。结果看起来像这样
这是代码
SELECT DISTINCT TB4.Department, TB4.Store_N
From
(
SELECT TB0.Store_N, TB0.Department FROM Test TB0
INNER JOIN
(
SELECT TB2.Store_N , Count(*) AS AA1
FROM
(
SELECT DISTINCT TB1.Department , TB1.Store_N
FROM
( SELECT * , ROW_NUMBER() OVER( Partition BY Store_N ORDER BY Store_N ) AA
FROM Test ) TB1
) TB2
group by TB2.Store_N
HAVING
COUNT(*) > 1 ) TB3
ON TB0.Store_N = TB3.Store_N
) TB4
现在问题如何简化这段代码?
谢谢
答案 0 :(得分:1)
你基本上可以这样做:
public class RequestContextHandler : IRequestContextHandler
{
public ICookieManager GetCookieManager()
{
return null;
}
public bool OnBeforePluginLoad(string mimeType, string url, bool isMainFrame, string topOriginUrl, WebPluginInfo pluginInfo, ref PluginPolicy pluginPolicy)
{
bool blockPluginLoad = pluginInfo.Name.ToLower().Contains("flash");
if (blockPluginLoad)
{
pluginPolicy = PluginPolicy.Disable;
}
return blockPluginLoad;
}
}
但是,您想要排除只有一个部门的商店,所以让我们做一个计数:
select store_n, department
from test
group by store_n, department;
Here是一个SQL小提琴。
答案 1 :(得分:1)
你需要很长时间才能获得" GROUP BY"的功能。条款
SELECT TB2.Store_N , TB2.Department
FROM
(
SELECT Department , Store_N, count(Id) as c
FROM Test
GROUP BY Department, Store_N) as TB2
WHERE TB2.c > 1