我有一個包含綁定到特定日期的不同商品的表。取決於價格變化的日期。我想得到每個日期最便宜的交易。SqlGroupBy在結果集中有一個字段,如group by子句中的
我的問題是,我通過像使用一組:
選擇價格,從日交易團,價格日期
顯示的報價,我需要更多的記錄這不是group by子句。最好的領域將是我的自動化,所以如果客戶選擇具有特定價格的報價,我可以使用第二選擇顯示該報價及其所有字段。
我希望這可以更簡單地回答我的問題。我試圖保持它的通用性可能的,但它並沒有描述不夠清楚:-)
我有一個包含綁定到特定日期的不同商品的表。取決於價格變化的日期。我想得到每個日期最便宜的交易。SqlGroupBy在結果集中有一個字段,如group by子句中的
我的問題是,我通過像使用一組:
選擇價格,從日交易團,價格日期
顯示的報價,我需要更多的記錄這不是group by子句。最好的領域將是我的自動化,所以如果客戶選擇具有特定價格的報價,我可以使用第二選擇顯示該報價及其所有字段。
我希望這可以更簡單地回答我的問題。我試圖保持它的通用性可能的,但它並沒有描述不夠清楚:-)
我有感覺就在Id
列添加到列表GROUP BY
SELECT id, date, price
FROM products
GROUP BY id, date, price
否則Sql Server中無法識別ID是返回由價格和日期行分組,例如考慮以下兩個行:
1 | 10-10-2010 | 100 |
2 | 10-10-2010 | 100 |
哪個Id
值應爲這是由日期和價格分組行被選中?
??? | 10-10-2010 | 100 |
你要麼需要在ID指定aggregate function或條款將其添加到您的組像@sll建議。總結例子:
SELECT MAX(id), date, price
FROM products
GROUP BY date, price
如果從選擇條款刪除ID,你將有日期和價格的所有不同夫妻的列表。
如果添加ID到集團通過條款,因爲它是一個身份,你會得到每每條記錄一行在你的桌上,讓您的集團通過條款會不會有用。
第三種方法是在ID使用聚合功能選擇子句中,以獲得一個值的每一個組(第一,最小,最大,等等)。
喜集團通過是有用的,當你正在做計數等
SELECT [Display Billing Provider], [Display Insurance Category]
, SUM([TOTAL RVUs]) AS RVUs_08
, SUM([Units]) AS Units_08
, SUM(Payments) AS Payments_08
FROM dbo.ProductivityAnal_2008
GROUP BY [Display Billing Provider],[Display Insurance Category]
ORDER BY [Display Billing Provider],[Display Insurance Category]
感謝安倍
只是想知道你從哪裏得到了這個查詢? – sll
這個查詢有問題;-) –
@CodeSaint,我downvoted。看起來你剛剛在網上找到了一個「GROUP BY」查詢的例子,並將其粘貼到這裏,而沒有試圖引用任何問題。我個人認爲你應該嘗試根據已經提出的問題來定製你的答案。 –
你想看到什麼的'ID'每個日期? 'MAX','MIN',一些隨機值? – JNK
Group By通常表示某種您在描述中沒有的聚合函數。您是否在尋找特定日期的價格總和?如果您只想按日期組織所有價格和產品ID並在詳細級別顯示,則應使用OrderBy而不是GroupBy。 – hqrsie
我每天有5次使用不同的價格購買同一款產品,我希望每天都能獲得特定產品類型的最佳優惠。 – NickD