亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SQL怎么查詢連續上漲 N 次的記錄

發布時間:2022-01-15 15:56:49 來源:億速云 閱讀:263 作者:柒染 欄目:大數據

小編今天帶大家了解SQL怎么查詢連續上漲 N 次的記錄,文中知識點介紹的非常詳細。覺得有幫助的朋友可以跟著小編一起瀏覽文章的內容,希望能夠幫助更多想解決這個問題的朋友找到問題的答案,下面跟著小編一起深入學習“SQL怎么查詢連續上漲 N 次的記錄”的知識吧。

用SQL如何查詢連續上漲N次的記錄?

這個問題用SQL來做很難!

SQL的理論基礎是無序集合,早期SQL也沒有次序的概念,需要用JOIN造出次序,連續上漲這種問題就非常困難。后來在SQL2003標準中加入了窗口函數,一定程度地緩解了這個問題,但解決連續上漲問題仍然并不輕松。

舉個例子:查詢連續n天上漲的股票,現有數據庫表stock數據如下:

codestockdateclose
0000622015-01-058.91
0000622015-01-068.31
0000622015-01-077.6
0000622015-01-087.93
0000622015-01-097.72

如果查詢連續3天上漲的股票,用SQL寫出來是這樣:

WITH A AS

       (SELECT CODE,STOCKDATE,(CLOSE-LAG(CLOSE) OVER (PARTITION BY CODE ORDER BY STOCKDATE) )CLOSE_UP FROM STOCK),

B AS

       (SELECT CODE,

              CASE WHEN CLOSE_UP>0 AND

                     LAG(CLOSE_UP) OVER (PARTITION BY CODE ORDER BY STOCKDATE)>0 AND

                     LAG(CLOSE_UP,2) OVER (PARTITION BY CODE ORDER BY STOCKDATE)>0

                     THEN 1 ELSE 0 END UPDAYS3 FROM A)

SELECT DISTINCT CODE FROM B WHERE UPDAYS3=1

這里把3天寫死進去了,要查詢連續5天就會更復雜, n天就不知道怎么寫。

對于這種有序的運算,如果使用集算器的SPL語言就會簡單很多,只需2行代碼:


A
1=connect("mydb").query("select   * from stock order by code, stockdate").group@o(code)
2=A1.select((a=0,~.pselect((a=if(close>close[-1],a+1,0))>=5))>0).(code)

如果要查詢n天,只要把A2中的5改成n即可。

SPL基于有序集合實現,對有序計算的支持比較徹底,能清楚表述集合中任意位置的記錄,通過絕對/相對位置定位,很容易計算股票每日漲跌。

感謝大家的閱讀,以上就是“SQL怎么查詢連續上漲 N 次的記錄”的全部內容了,學會的朋友趕緊操作起來吧。相信億速云小編一定會給大家帶來更優質的文章。謝謝大家對億速云網站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

sql
AI

纳雍县| 公主岭市| 东阳市| 始兴县| 南郑县| 扎囊县| 崇州市| 永福县| 通城县| 利辛县| 平利县| 鹤峰县| 台中市| 濮阳县| 丹凤县| 通辽市| 遂宁市| 丰台区| 长泰县| 炎陵县| 宁南县| 武威市| 甘谷县| 峨眉山市| 阳城县| 清原| 兰州市| 沁源县| 昔阳县| 洛隆县| 九寨沟县| 宜良县| 金昌市| 措勤县| 罗定市| 孝感市| 龙井市| 左云县| 呈贡县| 抚远县| 乐山市|