Saturday 29 July 2017

การย้าย ค่าเฉลี่ย ใน oracle sql


หากคุณเห็นข้อความนี้เบราว์เซอร์ของคุณไม่ใช้งานหรือไม่สนับสนุน JavaScript ในการใช้คุณลักษณะทั้งหมดของระบบช่วยเหลือนี้เช่นการค้นหาเบราว์เซอร์ของคุณต้องเปิดใช้งานการสนับสนุน JavaScript ค่าเฉลี่ยเคลื่อนที่ที่มีการเปลี่ยนแปลงโดยใช้ค่าเฉลี่ยเคลื่อนที่แบบง่ายแต่ละค่าข้อมูล ในหน้าต่างที่การคำนวณดำเนินการให้ความสำคัญหรือน้ำหนักเท่ากันโดยทั่วไปแล้วการวิเคราะห์ข้อมูลราคาทางการเงินมักเป็นกรณีที่ข้อมูลล่าสุดเมื่อเร็ว ๆ นี้ควรมีน้ำหนักมากขึ้นในกรณีนี้ค่าเฉลี่ยถ่วงน้ำหนักเคลื่อนที่หรือค่าเฉลี่ยเคลื่อนที่ที่ถ่วงน้ำหนัก - โปรดดูที่หัวข้อต่อไปนี้ของฟังก์ชันการทำงานที่ต้องการบ่อยครั้งโดยพิจารณาจากตารางค่าข้อมูลการขายแบบเดียวกันสำหรับสิบสองเดือนการคำนวณค่าเฉลี่ยถ่วงน้ำหนักคำนวณจำนวนช่วงเวลาของข้อมูลที่เข้าร่วมในการคำนวณค่าเฉลี่ยเคลื่อนที่เช่นขนาดของหน้าต่างคำนวณ ถ้าหน้าต่างคำนวณถูกระบุว่าเป็น n ค่าข้อมูลล่าสุดในหน้าต่างจะคูณด้วย n multiplie ล่าสุดถัดไป d โดย n-1 ค่าก่อนที่จะคูณด้วย n-2 และอื่น ๆ สำหรับค่าทั้งหมดในหน้าต่างให้หารผลรวมของค่าคูณทั้งหมดทั้งหมดด้วยการรวมน้ำหนักเพื่อให้ Average Weighted Moving Average เหนือหน้าต่างนั้น . ใส่ค่า Average Weighted Moving Average ในคอลัมน์ใหม่ตามการวางตำแหน่งเฉลี่ยโดยรวมตามที่อธิบายไว้ข้างต้นเพื่ออธิบายขั้นตอนเหล่านี้ให้พิจารณาว่าต้องใช้ค่าขายเฉลี่ยที่ถ่วงน้ำหนัก 3 เดือนในเดือนธันวาคมโดยใช้ตารางด้านบนของมูลค่าการขายคำนี้ 3 เดือนหมายความว่าหน้าต่างคำนวณ 3 ดังนั้นอัลกอริธึมการคำนวณถ่วงน้ำหนักโดยเฉลี่ยสำหรับกรณีนี้ควรเป็นหรือหากมีการประเมินค่าเฉลี่ยถ่วงน้ำหนัก 3 เดือนในช่วงข้อมูลเดิมทั้งหมดผลลัพธ์จะเป็น 3 เฉลี่ยถ่วงน้ำหนักเฉลี่ยในการคำนวณ T-SQL การคำนวณโดยทั่วไปในการวิเคราะห์แนวโน้มคือค่าเฉลี่ยเคลื่อนที่หรือค่าเฉลี่ยโดยเฉลี่ยของค่าเฉลี่ยเคลื่อนที่เช่น 10 แถวสุดท้ายค่าเฉลี่ยเคลื่อนที่แสดงเส้นโค้งที่ราบเรียบกว่า มูลค่าที่แท้จริง es มากขึ้นเพื่อให้มีระยะเวลานานสำหรับค่าเฉลี่ยเคลื่อนที่ทำให้เป็นเครื่องมือที่ดีสำหรับการวิเคราะห์แนวโน้มโพสต์บล็อกนี้จะแสดงวิธีการคำนวณค่าเฉลี่ยเคลื่อนที่ใน T-SQL วิธีการต่างๆจะใช้ขึ้นอยู่กับรุ่นของ SQL Server แผนภูมิ ด้านล่างแสดงให้เห็นถึงเส้นสีแดงที่เรียบโดยมีค่าเฉลี่ยเคลื่อนที่ 200 วันราคาหุ้นเป็นเส้นสีฟ้าแนวโน้มระยะยาวสามารถมองเห็นได้ชัดเจน T-SQL Moving Avergage 200 วันการสาธิตด้านล่างนี้ต้องการฐานข้อมูล TAdb ที่สามารถสร้างขึ้นพร้อมกับสคริปต์ ที่นี่ในตัวอย่างที่จะเกิดขึ้นเราจะคำนวณค่าเฉลี่ยเคลื่อนที่สำหรับ 20 วันที่ผ่านมาขึ้นอยู่กับรุ่นของ SQL Server จะมีวิธีการอื่นในการคำนวณและตามที่เราจะเห็นในภายหลัง SQL Server รุ่นใหม่กว่า มีฟังก์ชันช่วยให้การคำนวณมีประสิทธิภาพมากขึ้น SQL Server 2012 และรุ่นที่ใหม่กว่า Moving Average รุ่นนี้ใช้ฟังก์ชันหน้าต่างรวม Whats ใหม่ใน SQL 2012 เป็นไปได้ที่จะ จำกัด ขนาดของหน้าต่างโดย speci fying กี่แถวก่อนหน้าหน้าต่างควรมีก่อนหน้านี้เป็น 19 เพราะเราจะรวมแถวปัจจุบันเช่นกันในการคำนวณที่คุณสามารถดูการคำนวณค่าเฉลี่ยเคลื่อนที่ใน SQL Server 2012 จะค่อนข้างง่ายตัวเลขด้านล่างแสดงให้เห็นถึง บรรทัดปัจจุบันถูกทำเครื่องหมายด้วยสีเหลืองหน้าต่างถูกทำเครื่องหมายด้วยพื้นหลังสีน้ำเงินค่าเฉลี่ยเคลื่อนที่เป็นค่าเฉลี่ยของ QuoteClose ปิดในเส้นสีน้ำเงิน SQL - ย้ายหน้าต่างค่าเฉลี่ยผลการคำนวณใน SQL Server รุ่นเก่าคือ เดียวกันดังนั้นพวกเขาจะไม่แสดงอีกครั้ง SQL Server 2005 2008R2 Moving Average รุ่นนี้ใช้ประโยชน์จากการแสดงออกของตารางทั่วไป CTE เป็นตัวอ้างอิงเพื่อให้ได้ 20 แถวสุดท้ายสำหรับแต่ละ row. Moving Average ก่อน SQL Server 2005 ก่อน รุ่น 2005 จะใช้ outer outer ด้านซ้ายไปยังตารางเดียวกันเพื่อให้ได้ 20 แถวสุดท้ายตารางด้านนอกสามารถกล่าวได้ว่ามีหน้าต่างที่เราต้องการคำนวณโดยเฉลี่ยเมื่อเปรียบเทียบประสิทธิภาพหากเราเรียกใช้สามแตกต่างกัน วิธีการพร้อมกันและตรวจสอบแผนการดำเนินงานที่เกิดมีความแตกต่างอย่างมากในการปฏิบัติงานระหว่าง methodsparision สามวิธีที่แตกต่างกันในการคำนวณค่าเฉลี่ยเคลื่อนที่เป็นคุณสามารถดูการปรับปรุงฟังก์ชัน windowing ใน SQL 2012 ทำให้แตกต่างกันมากในการปฏิบัติตามที่กล่าวถึงใน จุดเริ่มต้นของโพสต์นี้ค่าเฉลี่ยเคลื่อนที่จะถูกใช้เป็นเครื่องมือในการอธิบายแนวโน้มวิธีการทั่วไปคือการรวมค่าเฉลี่ยเคลื่อนที่ของความยาวที่ต่างกันเพื่อให้สามารถระบุการเปลี่ยนแปลงในแนวโน้มระยะสั้นระยะกลางและระยะยาวได้ตามลำดับโดยเฉพาะความสนใจคือการข้าม เส้นแนวโน้มตัวอย่างเช่นเมื่อแนวโน้มระยะสั้นเคลื่อนที่ไปตามแนวโน้มระยะยาวหรือระยะปานกลางอาจถูกตีความว่าเป็นสัญญาณซื้อในการวิเคราะห์ทางเทคนิคและเมื่อแนวโน้มระยะสั้นเคลื่อนที่ไปตามเส้นแนวโน้มที่ยาวกว่านี้อาจถูกแปลเป็นสัญญาณขาย แผนภูมิด้านล่างแสดงคำคม Ma20, Ma50 และ Ma200.T-SQL Ma20, Ma50, Ma200 สัญญาณซื้อและขายบทความนี้เป็นส่วนหนึ่งของชุดข้อมูลเกี่ยวกับการวิเคราะห์ทางเทคนิค TA ใน SQL Server ดูโพสต์อื่น ๆ ที่นี่โพสต์โดย Tomas Lind. This เป็น Evergreen Joe Celko คำถามฉันไม่สนใจที่ใช้แพลตฟอร์ม DBMS แต่ในกรณีใด Joe สามารถตอบมากกว่า 10 ปีที่ผ่านมากับมาตรฐาน SQL. Joe Celko SQL ปริศนาและคำตอบ การอ้างอิงที่พยายามปรับปรุงครั้งล่าสุดแสดงให้เห็นว่าเราสามารถใช้คำกริยาเพื่อสร้างแบบสอบถามที่จะทำให้เรามีค่าเฉลี่ยเคลื่อนที่ได้คอลัมน์พิเศษหรือวิธีการสืบค้นที่ดีกว่าแบบสอบถามเป็นเทคนิคที่ดีกว่าเนื่องจากวิธีการอัพเดตจะ denormalize ฐานข้อมูล แต่ถ้า ข้อมูลทางประวัติศาสตร์ที่ถูกบันทึกไว้จะไม่เปลี่ยนแปลงและการคำนวณค่าเฉลี่ยเคลื่อนที่มีราคาแพงคุณอาจพิจารณาใช้วิธีการของคอลัมน์ SQL แบบสอบถามปริศนาทั้งหมดหมายความว่าคุณเพียงแค่โยนไปยังถังน้ำหนักที่เหมาะสมขึ้นอยู่กับระยะทางจากจุดเวลาปัจจุบัน ยกตัวอย่างเช่นใช้น้ำหนัก 1 สำหรับ datapoints ภายใน 24hrs จากน้ำหนัก datapoint ปัจจุบัน 0 5 สำหรับ datapoints ภายใน 48hrs กรณีที่มันสำคัญเท่าใด datapoints ติดต่อกันเช่น 6 12 am และ 11 48pm ห่างจากกันกรณีการใช้งานที่ฉันสามารถคิดจะเป็นความพยายามที่จะเรียบ histogram ที่ใดก็ตามที่ datapoints ไม่หนาพอ msciwoj 27 พฤษภาคม 15 ที่ 22 22.I m ไม่แน่ใจว่าผลลัพธ์ที่คาดหวังของคุณแสดงให้เห็นถึงการย้ายง่ายคลาสสิก ค่าเฉลี่ยของการกลิ้งเฉลี่ย 3 วันตัวอย่างเช่นหมายเลขสามตัวแรกของคำอธิบายให้ แต่คุณคาดหวัง 4 360 และอาจทำให้เกิดความสับสนอย่างไรก็ตามผมขอแนะนำโซลูชันต่อไปนี้ซึ่งใช้ AVG หน้าต่างฟังก์ชันวิธีนี้มีประสิทธิภาพมากขึ้นอย่างชัดเจน และทรัพยากรน้อยกว่า SELF-JOIN แนะนำในคำตอบอื่น ๆ และฉันประหลาดใจที่ไม่มีใครได้ให้ทางออกที่ดีกว่า. คุณเห็นว่า AVG ถูกห่อด้วยกรณีเมื่อ rownum แล้วบังคับให้ NULL s ในแถวแรกที่ 3 วัน Moving Average มีความหมาย 23 กุมภาพันธ์ 16 ที่ 13 12 เราสามารถใช้วิธีการเข้าร่วมด้านซ้ายที่สกปรกด้านซ้ายของ Joe Celko โดย Diego Scaravaggi เพื่อตอบคำถามตามที่ได้รับถามสร้างผลลัพธ์ที่ต้องการตอบ 9 ม. ค. 16 ที่ 0 33 คำตอบของคุณ 2017 St ACK Exchange, Inc.

No comments:

Post a Comment