आप पंक्तियों जो MAX(num) GROUP BY id
से मान होते हैं, यह एक आम पैटर्न हो जाता है पाने के लिए देख रहे हैं ...
WITH
sequenced_data
AS
(
SELECT
ROW_NUMBER() OVER (PARTITION BY id ORDER BY num DESC) AS sequence_id,
*
FROM
yourTable
)
SELECT
*
FROM
sequenced_data
WHERE
sequence_id = 1
संपादित
मैं अगर Teradata इस अनुमति देगा पता नहीं है, लेकिन तर्क समझ बनाने के लिए लगता है ...
SELECT
*
FROM
yourTable
WHERE
num = MAX(num) OVER (PARTITION BY id)
या हो सकता है ...
SELECT
*
FROM
(
SELECT
*,
MAX(num) OVER (PARTITION BY id) AS max_num_by_id
FROM
yourTable
)
AS sub_query
WHERE
num = max_num_by_id
यह वह जगह है मेरे पिछले उत्तर से थोड़ा अलग; यदि एकाधिक रिकॉर्ड एक ही MAX(num)
से बंधे हैं, तो यह उन सभी को वापस कर देगा, दूसरा उत्तर केवल एक ही लौटाएगा।
संपादित
अपने प्रस्तावित एसक्यूएल में त्रुटि तथ्य यह है कि OVER()
खंड एक क्षेत्र अपने ग्रुप द्वारा में नहीं होता है से संबंधित है। यह यह करने के लिए कोशिश की तरह क्योंकि वहाँ उस क्षेत्र में एक से अधिक मान हो सकता है के लिए प्रत्येक पंक्ति लौटे (साथ पंक्तियों से GROUP BY id
परिभाषित किया जा रहा वापस लौटे) है ...
SELECT id, num FROM yourTable GROUP BY id
num
अमान्य है,।
इसी तरह, आप खंड के अंदर num
नहीं डाल सकते हैं।
SELECT
id,
MAX(num), <-- Valid as it is an aggregate
MAX(num) <-- still valid
OVER(PARTITION BY id), <-- Also valid, as id is in the GROUP BY
MAX(num) <-- still valid
OVER(PARTITION BY num) <-- Not valid, as num is not in the GROUP BY
FROM
yourTable
GROUP BY
id
जब आप OVER()
खंड में कुछ निर्दिष्ट नहीं कर सकते के लिए इस सवाल का, और दिखा जब (मुझे लगता है कि) एक जवाब देखें आप कर सकते हैं: over-partition-by-question
हम यहाँ से अपने त्रुटि संदेश नहीं देख सकता। – RBarryYoung
क्या आप जिस आउटपुट की अपेक्षा करते हैं उसे दिखा सकते हैं, विवरण मुझे समझ में नहीं आया ... 'मैं प्रत्येक आईडी के लिए प्रत्येक नंबर के अधिकतम से जुड़े मूल्य को पकड़ना चाहता हूं।' मुझे यह भी यकीन नहीं है कि एक ऑर्डर द्वारा MAX() फ़ंक्शन में क्या अंतर आएगा ... – MatBailie
प्रश्न का सटीक उत्तर नहीं है लेकिन ऑरैकल विश्लेषणात्मक कार्यों के बारे में एक अच्छा परिचय [orafaq] (http: // www.orafaq.com/node/55)। पोस्ट सरल उदाहरणों के साथ अवधारणाओं को समझने में मदद करता है। –