我想要一个SQL Query
,它从表中获取特定column
的sum
不超过500的所有记录。
例如:有一个以dish_name, calorie_value, fat_value, protein_value
为列名的dish table
。现在我需要从dish table
中获取热量值的sum
不超过500的所有记录。
我当前的SQL查询:
SELECT * FROM dish WHERE SUM(calorie_value) < 500
但我对group
函数的使用无效。
您需要对您的唯一字段进行分组。(在您的情况下为dish_name
)。然后,如果要选择所有字段,则必须使用子查询。您的病情将出现在HAVING
声明中。
所以你的查询应该是这样的:
SELECT * FROM dish
WHERE dish_name IN ( SELECT dish_name FROM dish
GROUP BY dish_name
HAVING SUM(calorie_value) < 500 )
当您说要返回calorie_value之和不超过500的所有记录时,这实际上没有意义。表中的单个行只能有一个calorie_value值。所以你可以使用:
select * from dish where calorie_value < 500
这是你需要的吗?