select max(DELIVERY_TIMESTAMP) from DOCUMENTS;
將返回最新文檔的發送時間。如何返回其他列以獲取最新文檔?例如,我想DOC_NAME
爲最近交付的文檔?我不確定如何形成WHERE
子句。SQL搜索MAX()
回答
您有幾種選擇
SELECT DOC_NAME
FROM DOCUMENTS
WHERE DELIVERY_TIMESTAMP IN (
SELECT MAX(DELIVERY_TIMESTAMP)
FROM DOCUMENTS
)
或用加入
SELECT DOC_NAME
FROM DOCUMENTS
INNER JOIN (
SELECT MAX(DELIVERY_TIMESTAMP) AS MAX_DELIVERY_TIMESTAMP
FROM DOCUMENTS
) AS M
ON M.MAX_DELIVERY_TIMESTAMP = DOCUMENTS.DELIVERY_TIMESTAMP
是否有一個時間戳副本,或者您需要在您的「MAX」多列問題就變得更復雜標準(因爲MAX()
僅在所有行的一列上)
這就是JOIN
選項是唯一的選擇,因爲這樣的結構不可用(說具有相同的時間戳多個訂單):
SELECT DOC_NAME
FROM DOCUMENTS
WHERE (DELIVERY_TIMESTAMP, ORDERID) IN (
SELECT TOP 1 DELIVERY_TIMESTAMP, ORDERID
FROM DOCUMENTS
ORDER BY DELIVERY_TIMESTAMP DESC, ORDERID DESC
)
在那裏你其實需要做的:
SELECT DOC_NAME
FROM DOCUMENTS
INNER JOIN (
SELECT TOP 1 DELIVERY_TIMESTAMP, ORDERID
FROM DOCUMENTS
ORDER BY DELIVERY_TIMESTAMP DESC, ORDERID DESC
) AS M
ON M.DELIVERY_TIMESTAMP = DOCUMENTS.DELIVERY_TIMESTAMP
AND M.ORDERID = DOCUMENTS.ORDERID
Select Max(DELIVERY_TIMESTAMP),
Doc_Name
From TableName
Group By Doc_Name
這應該這樣做,除非我錯過了一些問題。
我不知道任何SQL變體,這是保證工作,至少在Oracle上它肯定不會。 – Alnitak 2008-10-31 16:20:16
只有當您訂購BY MAX(DELIVERY_TIMESTAMP)並取得TOP 1時,此功能纔有效。 – 2008-10-31 16:32:30
SELECT
DELIVERY_TIMESTAMP,
OTHER_COLUMN
FROM
DOCUMENTS
WHERE
DELIVERY_TIMESTAMP = (SELECT MAX(DELIVERY_TIMESTAMP) FROM DOCUMENTS)
這比我的更好,我爲您投票。 – 2008-10-31 15:54:51
在MSSQL中,下面的工作太:
SELECT TOP 1 * FROM DOCUMENTS ORDER BY DELIVERY_TIMESTAMP DESC
在SQL的某些版本(即MySQL)你可以這樣做:
SELECT *
FROM DOCUMENTS
ORDER BY DELIVERY_TIMESTAMP DESC
LIMIT 1
- 1. 在MATLAB中搜索max-min
- 2. 如何在sql ce中使用max(id)作爲搜索條件?
- 3. 如何加快「MAX() - 搜索」 SQL子查詢
- 4. 如何在SQL Server varbinary(max)字段中搜索字節序列?
- 5. 正在搜索nvarchar(max)字段
- 6. SQL索引搜索
- 7. SQL索引搜索
- 8. woocommerce搜索sql
- 9. SQL表搜索
- 10. 搜索與SQL
- 11. SQL搜索像
- 12. SQL搜索欄
- 13. PHP/SQL搜索
- 14. 搜索SQL
- 15. SQL,搜索true,false或同時搜索
- 16. SQL搜索查詢應先在搜索
- 17. 搜索結果Rails SQL - 搜索用戶
- 18. SQL執行搜索/替換搜索
- 19. SQL 2005 XML搜索
- 20. 搜索long varchar SQL
- 21. 搜索與SQL Server
- 22. 簡化SQL搜索
- 23. SQL查詢搜索
- 24. 搜索Sql選項
- 25. SQL搜索查詢
- 26. SQL搜索配置
- 27. 火花SQL搜索
- 28. 模糊SQL搜索
- 29. SQL或NoSQL搜索?
- 30. SQL命令搜索
凱德,我打算回覆JOIN解決方案,然後檢查每項技術的執行計劃。 Sql Server 2005(我有用的db)爲每種語法使用相同的執行計劃。 So Paul,你有你的選擇......性能不會受損 – 2008-10-31 15:58:53