2013-01-16 79 views
0

我目前在SQL查詢語言初學者,我目前努力獲得下面的查詢工作:如何在OVER中使用COUNT子句?

USE test; 
GO 
SELECT deal_type, price_type, 
    COUNT(deal_type) OVER(PARTITION BY deal_type) AS "Count1" 
,COUNT(price_type) OVER(PARTITION BY deal_type) AS "Count2" 
FROM deal_price 
WHERE deal_type = "rmbs", "Abs" 
GO 

我目前得到錯誤(「MSG 156」)

所需的輸出看起來如下所示:

--deal_type, price_type, count_1 
--rmbs, talk, 23 
--rmbs, cvr, 40 
--abs, talk, 40 

任何幫助將非常感激。謝謝。

+0

你有一個額外的「」價格類型 – AbZy

+0

後,非常感謝你的幫助。我仍然無法使查詢工作以實現所需的輸出。其目前閱讀人民幣爲無效。任何幫助將非常感激。 – user1574185

+0

使用單引號代替雙,如不是「人民幣」「人民幣」,這也適用於作爲「共1個記錄」 – AbZy

回答

0

使用In-clause

USE test; 
GO 
SELECT deal_type, price_type, 
COUNT(deal_type) OVER(PARTITION BY deal_type) AS 'Count1', 
COUNT(price_type) OVER(PARTITION BY deal_type) AS 'Count2' 
FROM deal_price 
WHERE deal_type in ('rmbs', 'Abs') 
GO 
+0

親愛的@Absi,非常感謝你的幫助。然而,輸出突然顯示爲諸如「人民幣,談話,200」,「人民幣,談話,200」,「人民幣,CVR,30」的重複線。相反,輸出應爲:「人民幣,談話,200」,「人民幣,CVR,30」,「ABS,談話,30」等 – user1574185

+1

@ user1574185你有你的deal_price表中的重複行,你想獲得不同的價值? – AbZy

+0

道歉是負擔,但是是增加了獨特的條款,因爲我在表中有重複。非常感謝你的幫助@absi。我非常感謝你的時間和幫助。太感謝了。 – user1574185

相關問題