-1

2 つの sqlite ステートメントを 1 つに結合する方法は?1 つのステートメントだけで結果が得られるようにします。

create table lowprice as select  code,date,min(close) as min_close from quote where date between '20120730' and '20121030' group by code;
select  * from lowprice where lowprice.date between  '20121025'  and  '20121030' ;
4

1 に答える 1

1

実際のテーブルを作成する代わりに、派生テーブル (サブクエリ) を使用できます。

SELECT code, date, min_close
FROM
(
    SELECT code, date, min(close) as min_close
    from quote
    WHERE date BETWEEN '20120730' AND '20121030'
    GROUP BY code
) AS lowprice
WHERE lowprice.date BETWEEN '20121025' AND '20121030' ;

codeただし、グループ化ではなく を選択しているため、このクエリは疑わしいように見えますdateこれはGROUP BY および HAVING と呼ばれる MySQL 拡張機能で、非表示の列があります。この拡張機能は、このクエリがほとんどのデータベースで無効である理由と、MySQL が許可する理由を理解している場合にのみ使用してください。このクエリが期待どおりに動作しない可能性が非常に高くなります。

于 2012-11-10T07:29:37.090 に答える