SQL Select*查询其中sum(col_name)<;500


SQL Select * Query where sum(col_name) < 500

我想要一个SQL Query,它从表中获取特定columnsum不超过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

这是你需要的吗?

相关文章: