मुझे पता है कि यह प्रश्न पहले ही 100 बार पूछा जा चुका है और मैंने उन सभी की समीक्षा की लेकिन मैं किंडा अटक गया हूं और मुझे मदद मांगनी पड़ी
मेरे पास इस तरह की टेबल है:
hivenumber Visitdate CombsNO WaxNo BeeBehave
------------------------------------------------
1 2017-11-10 10 2 4
2 2017-11-10 11 1 3
3 2017-11-10 12 3 3
1 2017-11-12 13 1 1
3 2017-11-11 14 5 2
सबसे पहले मैं इसे HiveNumber
से जोड़ना चाहता हूं
Select HiveNumber
From tHivesDetails
Group BY HiveNumber
फिर मुझे प्रत्येक HiveNumber
के लिए CombNo
का अंतिम रिकॉर्ड चाहिए
Select Top(1) CombNo
From `tHivesDetails`
Order By VisitDate Desc
फिर मुझे प्रत्येक HiveNumber
के लिए Wax
का योग चाहिए
Select Sum(Wax)
From `tHivesDetails`
Group BY HiveNumber
और अंत में मुझे औसत BeeBehave
चाहिए
Select Avg(BeeBehave)
From tHivesDetails
Group By HiveNumber
मुझे नहीं पता कि इन प्रश्नों को 1 से कैसे जोड़ा जाए और इस मामले में मुझे जो कुछ भी चाहिए, उसके साथ एक टेबल है। मैंने ज्यादातर एक ही प्रश्न पढ़ा लेकिन दुर्भाग्य से यह नहीं समझ पाया कि यह कैसे करें।
मुझे इस तरह का परिणाम चाहिए:
hivenumber Visitdate CombsNO WaxNo BeeBehave
------------------------------------------------
1 2017-11-12 13 Sum avg
2 2017-11-10 11 sum avg
3 2017-11-11 14 sum avg
2 जवाब
बचाव के लिए "विंडो फ़ंक्शंस"। परिणाम के प्रत्येक पंक्ति पर मान उत्पन्न करने के लिए आप over clause
के साथ समग्र फ़ंक्शन का उपयोग कर सकते हैं। ROW_NUMBER()
क्रम के उपयोग की भी अनुमति देता है, प्रत्येक "विभाजन" के भीतर घटती तारीखों के अनुसार क्रम से करता है, नंबर 1 "सबसे हालिया:" विज़िट (विभाजन के कारण प्रति हाइव) को दिया जाता है।
select *
from (
Select *
, row_number() over(partition by HiveNumber order by VisitDate DESC) rn
, sum(Wax) over(partition by HiveNumber) sum_wax
, Avg(BeeBehave) over(partition by HiveNumber) avg_bb
From tHivesDetails
) d
where rn = 1
ये कोशिश करें:
SELECT tA.HiveNumber, tA.WaxNoSum, tA.BeeBehaveSum, tB.CombsNoLatest
FROM (SELECT HiveNumber, SUM(WaxNo) AS WaxNoSum, AVG(BeeBehave) AS BeeBehaveSum
FROM tHivesDetails
GROUP BY HiveNumber) AS tA LEFT JOIN (SELECT HiveNumber, MAX(CombsNO) AS CombsNoLatest
FROM tHivesDetails
GROUP BY HiveNumber) AS tB ON tA.HiveNumber = tB.HiveNumber
संबंधित सवाल
नए सवाल
sql-server
Microsoft SQL सर्वर एक रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (RDBMS) है। कॉम्पैक्ट, एक्सप्रेस, एज़्योर, फास्ट-ट्रैक, एपीएस (पूर्व में पीडीडब्ल्यू) और एज़्योर SQL डीडब्ल्यू सहित सभी SQL सर्वर संस्करणों के लिए इस टैग का उपयोग करें। अन्य प्रकार के DBMS (MySQL, PostgreSQL, Oracle, आदि) के लिए इस टैग का उपयोग न करें। सॉफ़्टवेयर और मोबाइल विकास के मुद्दों के लिए इस टैग का उपयोग न करें, जब तक कि यह सीधे डेटाबेस से संबंधित न हो।