SELECT MAX(DATE) FROM YOUR_TABLE
上記の回答は、OP のニーズを満たしていないようです。
AFTER INSERT/UPDATE TRIGGERによる更新された回答
DELCARE @latestState varchar;
DELCARE @latestDate date;
CREATE TRIGGER latestInsertTrigger AFTER INSERT ON myTable
FOR EACH ROW
BEGIN
IF OLD.DATE <> NEW.date THEN
SET @latestState = NEW.state
SET @latestDate = NEW.date
END IF
END
;
CREATE TRIGGER latestUpdateTrigger AFTER UPDATE ON myTable
FOR EACH ROW
BEGIN
IF OLD.DATE = NEW.date AND OLD.STATE <> NEW.STATE THEN
SET @latestState = NEW.state
SET @latestDate = NEW.date
END IF
END
;
次のクエリを使用して、追加/更新された最新のレコードを取得できます。
SELECT DATE, STATE FROM myTable
WHERE STATE = @latestState
OR DATE = @latestDate
ORDER BY DATE DESC
;
結果:
DATE STATE
November, 30 2012 00:00:00+0000 state one
November, 28 2012 00:00:00+0000 state two
November, 27 2012 00:00:00+0000 state two
上記のクエリ結果は、必要に応じて 2、3、または n に制限する必要があります。
率直に言って、与えられたデータ サンプルに基づいて、両方の列から最大値を取得したいようです。あなたの状態が日付とともに増加すると仮定します。state
これが:D だったらいいのにと思いinteger
ます。両方の列で 2 つの最大サブクエリを結合すると、簡単に解決できます。それでも、文字列操作の正規表現は、状態列の最大値を見つけることができます。最後に、このアプローチにはlimit x
. しかし、まだロープ穴があります。とにかく、あなたの必要性を理解するのに時間がかかりました:$