1

私は mysql で MIN 関数を使用して列の最小値を返します - それを価格と呼びましょう。これまでのところ、私は次のものを持っています:

SELECT underlying,volatility FROM shares
where (id,price) IN (
    SELECT id,MIN(price) FROM shares
    where DATE(issueDate) >= DATE(NOW())
    group by id
 )

これはほとんど機能しますが、複数の行が返されます。最後の行のみを表示したいのですが、誰か助けてもらえますか?

4

3 に答える 3

1

私は問題を解決したと思います。実行に時間がかかるので、新しいインデックスを追加することから始めます:

SELECT underlying,volatility,price FROM shares
where (id,price) IN (
    SELECT id,MIN(price) FROM shares
    where DATE(issueDate) >= DATE(NOW())
    group by id
) order by price asc limit 1;
于 2013-11-07T01:43:30.260 に答える
0
SELECT underlying,volatility FROM shares
where (id,price) IN (
    SELECT 
        SUBSTRING_INDEX(GROUP_CONCAT(id ORDER BY price ASC), ',', 1) AS id,
        MIN(price) FROM shares
    where DATE(issueDate) >= DATE(NOW())
    group by id
 )
于 2013-11-07T08:50:59.527 に答える