我能寫一個查詢以最小值和相應值以優化方式返回組?目前我們使用相同的多個查詢。SQL Group by單個查詢中的最小值和相應值
例如: 表中有產品類別,產品名稱,產品ID和價格。我想用min(價格)返回產品類型,但也要返回產品名稱和產品ID。這是在2008年的SQL產品名稱和產品標識不重複
我能寫一個查詢以最小值和相應值以優化方式返回組?目前我們使用相同的多個查詢。SQL Group by單個查詢中的最小值和相應值
例如: 表中有產品類別,產品名稱,產品ID和價格。我想用min(價格)返回產品類型,但也要返回產品名稱和產品ID。這是在2008年的SQL產品名稱和產品標識不重複
首先值得注意的是,SQL是一個說明性語言;它聲明瞭一個功能需求,而不是如何解決這個需求(SQL根據統計信息,索引,提示等等被「編譯」爲解釋/執行計劃,然後就是執行的內容。) 。
也就是說,有些SQL表達式比其他表達式更昂貴。您的案例有一個簡單的解決方案,使用分析功能(又名窗口功能),由於僅掃描表(或適當的索引)一次,因此成本較低。
SELECT
*
FROM
(
SELECT
*,
RANK() OVER (PARTITION BY category ORDER BY price) AS category_price_rank
FROM
your_table
)
ranked_your_table
WHERE
category_price_rank = 1
SELECT * FROM (
SELECT ProductCatg, ProductName, ProductID, MIN(PRICE), DateOrdered
FROM YOUR_TABLE
GROUP BY ProductCatg, ProductName, ProductID, DateOrdered) A
WHERE A.PRICE = (SELECT MIN(PRICE)
FROM YOUR_TABLE
WHERE ProductCatg = A.ProductCatg AND ProductName = A.ProductName)
【溫馨提示詢問了良好的結構化查詢語言(SQL)的問題(http://meta.stackoverflow.com/a/271056/4955425) – sstan
也許你可以寫這樣的查詢。我們應該怎麼知道? – jarlh
添加樣品表數據和預期結果。 – jarlh