算在SELECT DISTINCT查询中吗?

时间:2019-08-15 15:59:03

标签: mysql sql oracle

所以我有这个查询:

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的不同城市/州/邮编?

我假设我需要某种子查询,但是我不确定如何完成它。谢谢。

4 个答案:

答案 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

希望这会有所帮助!