所以我有这个查询:
SELECT DISTINCT s.CITY, s.STATE, SUBSTR(s.ZIP,1,5) FROM table s
WHERE CITY IN (...)
AND STATE IN (...)
我该如何添加,以使计数(s.ID)> 20,从而只获得表中ID超过20的不同城市/州/邮编?
我假设我需要某种子查询,但是我不确定如何完成它。谢谢。
答案 0 :(得分:1)
按您要选择的值分组,并仅采用具有20条以上记录的那些分组
SELECT s.CITY, s.STATE, SUBSTR(s.ZIP,1,5)
FROM table s
WHERE CITY IN (...)
AND STATE IN (...)
GROUP BY s.CITY, s.STATE, SUBSTR(s.ZIP,1,5)
HAVING count(*) > 20
答案 1 :(得分:1)
使用子查询的另一种方式
SELECT s.CITY, s.STATE, SUBSTR(s.ZIP,1,5)
FROM Table S JOIN
(
SELECT ID, COUNT(ID) Cnt
FROM Table
GROUP BY ID
) SS
ON S.ID = SS.ID
WHERE CITY IN (...)
AND STATE IN (...)
AND Cnt > 20
答案 2 :(得分:1)
如果需要对聚合进行过滤,请使用public async Task<ReturnViewModel> ModContactsAsync(List<ContactsDTO> Contacts)
{
ReturnViewModel vm = new ReturnViewModel();
var bodyContent = JsonConvert.SerializeObject(Contacts);
using (var client = new HttpClient())
{
var response = await client.PostAsync(AppConfig.ServiceUrlBase, new StringContent(bodyContent, Encoding.UTF8, "application/json"));
return responseString.Result.Content.ReadAsStringAsync().Result;
}
return vm;
}
。 HAVING
在进行如下分组后被应用:
HAVING
答案 3 :(得分:0)
您可以查看HAVING子句:https://dev.mysql.com/doc/refman/5.5/en/group-by-handling.html
我不确定该如何处理您的数据。
Set myFC = myRange.FormatConditions.Add(xlExpression, Formula1:="=...")
很明显,您在选择DISTINCT时不需要GROUP BY ...那么可能是这样的事情吗?
myFC.Interior.Color = vbRed
希望这会有所帮助!