如何在SQL查询中显示特定范围的数字

dks*_*209 2 mysql sql database sqlite sqlitestudio

所以这比标题所暗示的要多一点.我有其中包含的表列和数量列,我想显示谁拥有500和1500之间的总和数量的结果.

例:

name     qty
------  ----
brad     100
cody     300
kylie   1100
brad     800
nelson  1200
bob      600
nelson   100
kylie    600
Run Code Online (Sandbox Code Playgroud)

我想要显示结果

name     qty
------  ----
brad     900
nelson  1300
bob      600
Run Code Online (Sandbox Code Playgroud)

希望这是有道理的.这是我得到的查询

SELECT name, SUM(qty) AS Total 
FROM t1 
    NATURAL JOIN t2 
WHERE qty BETWEEN 500 AND 1500 
GROUP BY name 
ORDER BY name
Run Code Online (Sandbox Code Playgroud)

问题是它似乎只是将qty中的字段汇总在500到1500之间,而不是仅显示该范围内的Total字段.我尝试做"WHERE SUM(qty)BETWEEN ...."但这会导致编译错误(我正在使用SQLite studio)

这是我所在的数据库课的作业问题,我正在学习,而不仅仅是得到答案.谢谢!

小智 5

不需要连接,您需要添加HAVING子句

SELECT name, SUM(qty) AS Total 
FROM t1 
GROUP BY name 
HAVING SUM(qty) BETWEEN 500 AND 1500
ORDER BY name
Run Code Online (Sandbox Code Playgroud)