5
จัดกลุ่มตามชั่วโมงในชุดข้อมูลขนาดใหญ่
ใช้ MS SQL 2008 ฉันกำลังเลือกเขตข้อมูลเฉลี่ยจาก 2.5 ล้านระเบียน แต่ละระเบียนแสดงถึงหนึ่งวินาที MyField เป็นค่าเฉลี่ยรายชั่วโมงของบันทึก 1 วินาทีเหล่านั้น แน่นอนว่าซีพียูเซิร์ฟเวอร์ฮิต 100% และการเลือกใช้เวลานานเกินไป ฉันจำเป็นต้องบันทึกค่าเฉลี่ยเหล่านั้นเพื่อให้ SQL ไม่จำเป็นต้องเลือกระเบียนเหล่านั้นทั้งหมดในแต่ละคำขอ สิ่งที่สามารถทำได้? SELECT DISTINCT CONVERT(VARCHAR, [timestamp], 1)+' '+ CAST(DATEPART(Hh,[timestamp]) as VARCHAR) AS TimeStampHour, MIN([timestamp]) as TimeStamp, AVG(MyField) As AvgField FROM MyData WHERE TimeStamp > '4/10/2011' GROUP BY CONVERT(VARCHAR, [timestamp], 1)+' '+ CAST(DATEPART(Hh,[timestamp]) as …
12
sql-server
query