-2

特定のが 500 を超えないSQL Queryテーブルからすべてのレコードをフェッチする が必要です。sumcolumn

例:列名としてがdish tableあります。ここで、カロリー値が 500 を超えないdish_name, calorie_value, fat_value, protein_valueすべてのレコードを取得する必要があります。dish tablesum

私の現在のSQLクエリ:

SELECT * FROM dish WHERE SUM(calorie_value) < 500

しかし、関数の使用が無効になっていますgroup

4

2 に答える 2

2

独自のフィールドをグループ化する必要があります。(つまりdish_name、あなたの場合)。次に、すべてのフィールドを選択する場合に備えて、サブクエリを使用する必要があります。あなたの状態はHAVING声明に出てきます。

したがって、クエリは次のようになります。

SELECT * FROM dish 
WHERE dish_name IN ( SELECT dish_name FROM dish
                     GROUP BY dish_name
                     HAVING SUM(calorie_value) < 500 )
于 2013-06-29T12:01:03.253 に答える
1

calorie_value の合計が 500 を超えないすべてのレコードを返したいと言った場合、これはあまり意味がありません。テーブル内の個々の行は、calorie_value の値を 1 つだけ持つことができます。したがって、次を使用できます。

select * from dish where calorie_value < 500

これはあなたが必要とするものですか?

于 2013-06-29T12:06:14.867 に答える