0
這聽起來有點不好,但我試圖計算查詢中返回行的總數。我試過COUNT()無濟於事。到目前爲止,我有這個疑問:在SQL中計算返回的行的總數
SELECT DISTINCT
a.*
, LEVEL AS n
, count(wipdatavalue) as total
FROM
(
SELECT
WIPDATAVALUE
, CONTAINERNAME
, una
, dulo
, (dulo - una) + 1 AS m
FROM
(
SELECT
WIPDATAVALUE
, CONTAINERNAME
, CASE
WHEN INSTR(wipdatavalue, '-') = 0 THEN
wipdatavalue
ELSE
SUBSTR(wipdatavalue, 1, INSTR(wipdatavalue, '-')-1)
END AS una
, CASE
WHEN INSTR(wipdatavalue, '-') = 0 THEN
wipdatavalue
ELSE
SUBSTR(wipdatavalue, INSTR(wipdatavalue, '-') + 1)
END AS dulo
FROM trprinting
WHERE containername = '8PB842613'
)
)A CONNECT BY LEVEL <= m
GROUP BY
WIPDATAVALUE
, CONTAINERNAME
, una
, dulo
, m
, LEVEL
ORDER BY N;
我也試圖讓N字段1到8,因爲這應該是正確的輸出。提前致謝。我知道你們會有所幫助:)
無濟於事?這是否意味着你得到不正確的結果?我在你的SQL中看到了一些問題,例如,你應該刪除DISTINCT,因爲GROUP BY已經使它不同。您可以使用ROLLUP標識符在查詢中添加總計行數 - 這是您想要的嗎?以及'將N字段設置爲1到8'是什麼意思? - 是字段顯示的是價值還是錯誤的順序? – 2013-03-05 03:48:20
嗨ElectricLlama。感謝您的建議。是的,你是對的,我可以刪除DISTINCT關鍵詞。我的意思是N字段1到8只是對行進行計數。所以如果它返回8行,第一個值將是1,然後是2到8.類似的東西。還有一件事,TOTAL列應該返回8,因爲有8行返回。 – GianIsTheName 2013-03-05 04:08:53
你的意思是N應該是跑步數量?運行計數排序和重置是什麼?在Oracle中,您通常使用PARTITION BY來計算運行次數。 – 2013-03-05 06:38:20