sql >> データベース >  >> RDS >> Mysql

mysqlはSUMの代わりに違いを取得します

    違いの集計関数はありませんが、使用する行が正確にわかっているため、各値を独自のサブクエリとして選択し、1つのselectステートメントで2つの列を互いに減算できます。

    SELECT a.op, b.op, a.op - b.op as diff
    FROM (SELECT 10 as op) a
    JOIN (SELECT 8 as op) b
    

    スキーマに従って表現すると、おそらく次のようになります。

    SELECT a.op, b.op, a.op - b.op as diff
    FROM (SELECT P_QTY as op FROM rankhistory WHERE P_QTY = 160) a
    JOIN (SELECT P_QTY as op FROM rankhistory WHERE P_QTY = 108) b
    

    ただし、このアプローチをアプリケーションで定期的に使用するには、IDなど、簡単に選択できて意味のあるものに基づいて処理する必要があります。

    しかし、何か他のものが欲しいようです。おそらく、日付範囲内の最大値と最小値の違いに興味がありますか?

    SELECT MAX(P_QTY) - MIN(P_QTY) as diff
    FROM rankhistory
    WHERE rh_date BETWEEN '1438556400' AND '1438642800'
    



    1. 致命的なエラー:未定義の関数session_register()の呼び出し

    2. 管理者の許可なしにPHPMyAdminを使用してmysqlのタイムゾーンを変更するにはどうすればよいですか?

    3. MariaDBでのSTRCMP()のしくみ

    4. 整数の長さを無視するMySQL8