我需要做多個計數。我有大約6欄。事情是這樣的:使用SQL使用多個查詢的多個SQL計數
SELECT
COUNT(C.ID) as 'Column 1',
COUNT(C.ID) as 'Column 2',
COUNT(C.ID) as 'Column 3',
COUNT(C.ID) as 'Column 4',
FROM CONTACT C
我需要能夠運行使用不同的查詢,但不能確定如何適用查詢計數一個結果不同的計數。
我需要做多個計數。我有大約6欄。事情是這樣的:使用SQL使用多個查詢的多個SQL計數
SELECT
COUNT(C.ID) as 'Column 1',
COUNT(C.ID) as 'Column 2',
COUNT(C.ID) as 'Column 3',
COUNT(C.ID) as 'Column 4',
FROM CONTACT C
我需要能夠運行使用不同的查詢,但不能確定如何適用查詢計數一個結果不同的計數。
這裏有幾個選項。
1)使用子查詢作爲@TheSoultion提出
2)使用UNION使用
SELECT 'A' NAME, COUNT(c.ID) [COUNT] FROM Contact c WHERE ...
UNION
SELECT 'B' NAME, COUNT(c.ID) [COUNT] FROM Contact c WHERE ...
3)的情況下,它確實是同一個子集,但你要根據一定的條件來概括,用例然後在你的計數內
SELECT sum(case ... when ... then 1 else 0 end) counta,
sum(case ... when ... then 1 else 0 end) countb
FROM ... WHERE ...
您需要運行子查詢,或者至少這是一個方法:
SELECT
(SELECT COUNT(c.ID) FROM Contact c WHERE ...) AS Column1,
(SELECT COUNT(c.ID) FROM Contact c WHERE ...) AS Column2
'子查詢返回的值超過1。當子查詢遵循=,!=,<, <= , >,> =或當子查詢用作表達式時,這是不允許的。' – PriceCheaperton
@PriceCheaperton,以及您使用了哪個WHERE子句? –
如果我理解你想要做什麼,我通常最終會做這種方式:
SELECT
SUM(CASE WHEN Condition1 THEN 1 END) AS Column1,
SUM(CASE WHEN Condition2 THEN 1 END) AS Column2
FROM Contact
'將varchar值'London'轉換爲數據類型int.'時發生轉換失敗 - 我在使用UNION時得到此... – PriceCheaperton
@PriceCheaperton顯示您的確切查詢。 – vittore