午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁 > 知識庫 > Oracle數據庫中SQL開窗函數的使用

Oracle數據庫中SQL開窗函數的使用

熱門標簽:杭州網絡外呼系統運營商 地圖標注效果的制作 網貸外呼系統合法嗎 電銷套路機器人 手機地圖標注門店 地圖標注坐標圖標 汽車4s店百度地圖標注店 安陽企業電銷機器人供應商 鶴壁電話機器人價格

開窗函數:在開窗函數出現之前存在著很多用 SQL 語句很難解決的問題,很多都要通過復雜的相關子查詢或者存儲過程來完成。為了解決這些問題,在 2003 年 ISO SQL 標準加入了開窗函數,開窗函數的使用使得這些經典的難題可以被輕松的解決。目前在 MSSQLServer、Oracle、DB2 等主流數據庫中都提供了對開窗函數的支持,不過非常遺憾的是 MYSQL 暫時還未對開窗函數給予支持。

開窗函數簡介:與聚合函數一樣,開窗函數也是對行集組進行聚合計算,但是它不像普通聚合函數那樣每組只返回一個值,開窗函數可以為每組返回多個值,因為開窗函數所執行聚合計

算的行集組是窗口。在 ISO SQL 規定了這樣的函數為開窗函數,在 Oracle 中則被稱為分析函數。

數據表(Oracle):T_Person 表保存了人員信息,FName 字段為人員姓名,FCity 字段為人員所在的城市名,FAge 字段為人員年齡,FSalary 字段為人員工資

CREATE TABLE T_Person (FName VARCHAR2(20),FCity VARCHAR2(20),FAge INT,FSalary INT)

向 T_Person 表中插入一些演示數據:

INSERT INTO T_Person(FName,FCity,FAge,FSalary)
VALUES('Tom','BeiJing',20,3000);
INSERT INTO T_Person(FName,FCity,FAge,FSalary)
VALUES('Tim','ChengDu',21,4000);
INSERT INTO T_Person(FName,FCity,FAge,FSalary)
VALUES('Jim','BeiJing',22,3500);
INSERT INTO T_Person(FName,FCity,FAge,FSalary)
VALUES('Lily','London',21,2000);
INSERT INTO T_Person(FName,FCity,FAge,FSalary)
VALUES('John','NewYork',22,1000);
INSERT INTO T_Person(FName,FCity,FAge,FSalary)
VALUES('YaoMing','BeiJing',20,3000);
INSERT INTO T_Person(FName,FCity,FAge,FSalary)
VALUES('Swing','London',22,2000);
INSERT INTO T_Person(FName,FCity,FAge,FSalary)
VALUES('Guo','NewYork',20,2800);
INSERT INTO T_Person(FName,FCity,FAge,FSalary)
VALUES('YuQian','BeiJing',24,8000);
INSERT INTO T_Person(FName,FCity,FAge,FSalary)
VALUES('Ketty','London',25,8500);
INSERT INTO T_Person(FName,FCity,FAge,FSalary)
VALUES('Kitty','ChengDu',25,3000);
INSERT INTO T_Person(FName,FCity,FAge,FSalary)
VALUES('Merry','BeiJing',23,3500);
INSERT INTO T_Person(FName,FCity,FAge,FSalary)
VALUES('Smith','ChengDu',30,3000);
INSERT INTO T_Person(FName,FCity,FAge,FSalary)
VALUES('Bill','BeiJing',25,2000);
INSERT INTO T_Person(FName,FCity,FAge,FSalary)
VALUES('Jerry','NewYork',24,3300);

select * from t_person:

要計算所有人員的總數,我們可以執行下面的 SQL 語句:SELECT COUNT(*) FROM T_Person

除了這種較簡單的使用方式,有時需要從不在聚合函數中的行中訪問這些聚合計算的值。比如我們想查詢每個工資小于 5000 元的員工信息(城市以及年齡),并且在每行中都顯示所有工資小于 5000 元的員工個數:

select fname,
  fcity,
  fsalary,
  (select count(*) from t_person where fsalary  5000) 工資少于5000員工總數
 from t_person
 where fsalary  5000

雖然使用子查詢能夠解決這個問題,但是子查詢的使用非常麻煩,使用開窗函數則可以大大簡化實現,下面的 SQL 語句展示了如果使用開窗函數來實現同樣的效果:

select fname, fcity, fsalary, count(*) over() 工資小于5000員工數
 from t_person
 where fsalary  5000

可以看到與聚合函數不同的是,開窗函數在聚合函數后增加了一個 OVER 關鍵字。

開窗函數格式: 函數名(列) OVER(選項)

OVER 關鍵字表示把函數當成開窗函數而不是聚合函數。SQL 標準允許將所有聚合函數用做開窗函數,使用 OVER 關鍵字來區分這兩種用法。
在上邊的例子中,開窗函數 COUNT(*) OVER()對于查詢結果的每一行都返回所有符合條件的行的條數。OVER 關鍵字后的括號中還經常添加選項用以改變進行聚合運算的窗口范圍。如果 OVER 關鍵字后的括號中的選項為空,則開窗函數會對結果集中的所有行進行聚合運算。

PARTITION BY 子句:

開窗函數的 OVER 關鍵字后括號中的可以使用 PARTITION BY 子句來定義行的分區來供進行聚合計算。與 GROUP BY 子句不同,PARTITION BY 子句創建的分區是獨
立于結果集的,創建的分區只是供進行聚合計算的,而且不同的開窗函數所創建的分區也不互相影響。下面的 SQL 語句用于顯示每一個人員的信息以及所屬城市的人員數:

select fname,fcity,fage,fsalary,count(*) over(partition by fcity) 所在城市人數 from t_person

COUNT(*) OVER(PARTITION BY FCITY)表示對結果集按照FCITY進行分區,并且計算當前行所屬的組的聚合計算結果。比如對于FName等于 Tom的行,它所屬的城市是BeiJing,同
屬于BeiJing的人員一共有6個,所以對于這一列的顯示結果為6。

這就不需要先對fcity分組求和,然后再和t_person表連接查詢了,省事兒。

在同一個SELECT語句中可以同時使用多個開窗函數,而且這些開窗函數并不會相互干
擾。比如下面的SQL語句用于顯示每一個人員的信息、所屬城市的人員數以及同齡人的人數:

--顯示每一個人員的信息、所屬城市的人員數以及同齡人的人數:
select fname,
  fcity,
  fage,
  fsalary,
  count(*) over(partition by fcity) 所屬城市的人個數,
  count(*) over(partition by fage) 同齡人個數
 from t_person

ORDER BY子句:

開窗函數中可以在OVER關鍵字后的選項中使用ORDER BY子句來指定排序規則,而且有的開窗函數還要求必須指定排序規則。使用ORDER BY子句可以對結果集按
照指定的排序規則進行排序,并且在一個指定的范圍內進行聚合運算。ORDER BY子句的語法為:

ORDER BY 字段名 RANGE|ROWS BETWEEN 邊界規則1 AND 邊界規則2

RANGE表示按照值的范圍進行范圍的定義,而ROWS表示按照行的范圍進行范圍的定義;邊界規則的可取值見下表:

“RANGE|ROWS BETWEEN 邊界規則1 AND 邊界規則2”部分用來定位聚合計算范圍,這個子句又被稱為定位框架。

例子程序一:查詢從第一行到當前行的工資總和:

select fname,
  fcity,
  fage,
  fsalary,
  sum(fsalary) over(order by fsalary rows between unbounded preceding and current row) 到當前行工資求和
 from t_person

這里的開窗函數“SUM(FSalary) OVER(ORDER BY FSalary ROWS BETWEEN
UNBOUNDED PRECEDING AND CURRENT ROW)”表示按照FSalary進行排序,然后計算從第
一行(UNBOUNDED PRECEDING)到當前行(CURRENT ROW)的和,這樣的計算結果就是按照
工資進行排序的工資值的累積和。

“RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW”是開窗函數中最常使用的定位框架,為了簡化使用,如果使用的是這種定位框架,則可以省略定位框架聲明部分,
也就是說上邊的sql可以簡化成:

select fname,
  fcity,
  fage,
  fsalary,
  sum(fsalary) over(order by fsalary) 到當前行工資求和
 from t_person

例子程序二:把例子程序一的row換成了range,是按照范圍進行定位的

select fname,
  fcity,
  fage,
  fsalary,
  sum(fsalary) over(order by fsalary range between unbounded preceding and current row) 到當前行工資求和
 from t_person

區別:

這個SQL語句與例1中的SQL語句唯一不同的就是“ROWS”被替換成了“RANGE”。“ROWS”
是按照行數進行范圍定位的,而“RANGE”則是按照值范圍進行定位的,這兩個不同的定位方式
主要用來處理并列排序的情況。比如 Lily、Swing、Bill這三個人的工資都是2000元,如果按照
“ROWS”進行范圍定位,則計算從第一條到當前行的累積和,而如果 如果按照 “RANGE”進行
范圍定位,則仍然計算從第一條到當前行的累積和,不過由于等于2000元的工資有三個人,所
以計算的累積和為從第一條到2000元工資的人員結,所以對 Lily、Swing、Bill這三個人進行開
窗函數聚合計算的時候得到的都是7000( “ 1000+2000+2000+2000 ”)。

下邊這的估計不常用:

例子程序三:

SELECT FName,
  FSalary,
  SUM(FSalary) OVER(ORDER BY FSalary ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING) 前二后二和
 FROM T_Person;

這里的開窗函數“SUM(FSalary) OVER(ORDER BY FSalary ROWS BETWEEN 2
PRECEDING AND 2 FOLLOWING)”表示按照FSalary進行排序,然后計算從當前行前兩行(2
PRECEDING)到當前行后兩行(2 FOLLOWING)的工資和,注意對于第一條和第二條而言它們
的“前兩行”是不存在或者不完整的,因此計算的時候也是要按照前兩行是不存在或者不完整進
行計算,同樣對于最后兩行數據而言它們的“后兩行”也不存在或者不完整的,同樣要進行類似
的處理。

例子程序四:

SELECT FName, FSalary,
SUM(FSalary) OVER(ORDER BY FSalary ROWS BETWEEN 1 FOLLOWING AND 3 FOLLOWING) 后面一到三之和
FROM T_Person;

這里的開窗函數“SUM(FSalary) OVER(ORDER BY FSalary ROWS BETWEEN 1
FOLLOWING AND 3 FOLLOWING)”表示按照FSalary進行排序,然后計算從當前行后一行(1
FOLLOWING)到后三行(3 FOLLOWING)的工資和。注意最后一行沒有后續行,其計算結果為
空值NULL而非0。

例子程序五:算工資排名

SELECT FName, FSalary,
COUNT(*) OVER(ORDER BY FSalary ROWS BETWEEN UNBOUNDED PRECEDING AND
CURRENT ROW)
FROM T_Person;

這里的開窗函數“COUNT(*) OVER(ORDER BY FSalary RANGE BETWEEN UNBOUNDED
PRECEDING AND CURRENT ROW)”表示按照FSalary進行排序,然后計算從第一行
(UNBOUNDED PRECEDING)到當前行(CURRENT ROW)的人員的個數,這個可以看作是計算
人員的工資水平排名。

不再用ROWNUM 了 省事了。這個over簡寫就會出錯。

例子程序6:結合max求到目前行的最大值

SELECT FName, FSalary,FAge,
MAX(FSalary) OVER(ORDER BY FAge) 此行之前最大值
FROM T_Person;

這里的開窗函數“MAX(FSalary) OVER(ORDER BY FAge)”是“MAX(FSalary)
OVER(ORDER BY FAge RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)”
的簡化寫法,它表示按照FSalary進行排序,然后計算從第一行(UNBOUNDED PRECEDING)
到當前行(CURRENT ROW)的人員的最大工資值。

例子程序6:over(partition by XX order by XX) partition by和order by 結合

員工信息+同齡人最高工資,按工資排序

SELECT FName, FSalary,FAge,
MAX(FSalary) OVER(PARTITION BY FAge order by fsalary) 同齡人最高工資
FROM T_Person;

PARTITION BY子句和ORDER BY 可以 共 同 使用,從 而 可以 實現 更 加復 雜 的 功能

==================================================================================

高級開窗函數/ 排名的實現ROW_NUMBER();rank() ,dense_rank()

除了可以在開窗函數中使用COUNT()、SUM()、MIN()、MAX()、AVG()等這些聚合函數,
還可以在開窗函數中使用一些高級的函數,有些函數同時被DB2和Oracle同時支持,比如
RANK()、DENSE_RANK()、ROW_NUMBER(),而有些函數只被Oracle支持,比如
RATIO_TO_REPORT()、NTILE()、LEAD()、LAG()、FIRST_VALUE()、LAST_VALUE()。
下面對這幾個函數進行詳細介紹。

RANK()和DENSE_RANK()函數都可以用于計算一行的排名,不過對于并列排名的處理方式
不同;ROW_NUMBER()函數計算一行在結果集中的行號,同樣可以將其當成排名函數。這三個
函數的功能存在一定的差異,舉例如下:工資從高到低排名:

SELECT FName, FSalary,FAge,
RANK() OVER(ORDER BY fsalary desc) f_RANK,
DENSE_RANK() OVER(ORDER BY fsalary desc) f_DENSE_RANK,
ROW_NUMBER() OVER(ORDER BY fsalary desc) f_ROW_NUMBER
FROM T_Person;

rank(),dense_rank()語法:

RANK()
dense_rank()
【語法】RANK ( ) OVER ( [query_partition_clause] order_by_clause )
 dense_RANK ( ) OVER ( [query_partition_clause] order_by_clause )

【功能】聚合函數RANK 和 dense_rank 主要的功能是計算一組數值中的排序值。
【參數】dense_rank與rank()用法相當,
【區別】dence_rank在并列關系是,相關等級不會跳過。rank則跳過
rank()是跳躍排序,有兩個第二名時接下來就是第四名(同樣是在各個分組內) 
dense_rank()l是連續排序,有兩個第二名時仍然跟著第三名。

row_number() 函數語法:

ROW_NUMBER()
【語法】ROW_NUMBER() OVER (PARTITION BY COL1 ORDER BY COL2) 
【功能】表示根據COL1分組,在分組內部根據 COL2排序,而這個值就表示每組內部排序后的順序編號(組內連續的唯一的) 
row_number() 返回的主要是“行”的信息,并沒有排名
【參數】
【說明】Oracle分析函數

主要功能:用于取前幾名,或者最后幾名等

===================================================================

排序函數實際場景使用:計算排行榜,排名

微信活動,每天參與,有得分,活動結束后選出排名靠前的發獎。

每參與一次,就是一個訂單,表結構:

比如要查詢期號issue為20170410期的排行榜,按得分倒敘排序,得分一樣按訂單創建先后,算排行,sql需要這么寫:

select ROWNUM rank, t.*
 from (select *
   from t_zhcw_order
   where issue = '20170410'
   order by integral desc, create_date asc) t

使用了開窗函數后就可以簡化:

select t.*,
    row_number() over(order by t.integral desc, t.create_date asc) 排名
   from t_zhcw_order t
   where issue = '20170410'

如果想只要排名范圍,可以在外邊再包一層,這也是高效分頁的一種方式:

select tt.* from (
select t.id,
  t.integral,
  t.cell,
  t.create_date,
  row_number() over(order by t.integral desc, t.create_date asc) rankNum
 from t_zhcw_order t
 where t.issue = 20170331
)tt where tt.rankNum=50

到此這篇關于Oracle數據庫中SQL開窗函數的使用的文章就介紹到這了,更多相關Oracle SQL開窗函數內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • SQL中的開窗函數詳解可代替聚合函數使用
  • Sql Server 開窗函數Over()的使用實例詳解
  • SQL Server 2012 開窗函數
  • sql server如何利用開窗函數over()進行分組統計

標簽:酒泉 河源 泰安 南陽 柳州 銀川 梧州 焦作

巨人網絡通訊聲明:本文標題《Oracle數據庫中SQL開窗函數的使用》,本文關鍵詞  Oracle,數據庫,中,SQL,開窗,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Oracle數據庫中SQL開窗函數的使用》相關的同類信息!
  • 本頁收集關于Oracle數據庫中SQL開窗函數的使用的相關信息資訊供網民參考!
  • 推薦文章
    免费成人进口网站| 亚洲国产精品久久久久婷婷884 | 国产精品xxx视频| 国产精品亚洲网站| 国产欧美亚洲日本| 亚洲精品乱码视频| 2018日日夜夜| 国产福利在线免费| 亚洲综合自拍网| 天天操夜夜操av| www..com国产| 国产欧美一级片| 久久精品综合| 国产一区激情在线| 国产欧美日韩不卡免费| 夜夜夜精品看看| 欧洲一区二区av| 精品国产91洋老外米糕| 色妞久久福利网| 2019中文在线观看| av成人观看| 永久久久久久| 国产97色在线 | 日韩| 岛国av免费观看| 国产午夜精品理论片| 亚洲成人第一网站| 天天干天天摸天天操| 国产大片一区二区| 综合av第一页| 欧美四级电影网| 亚洲男子天堂网| 69av在线播放| 国产一级精品aaaaa看| 蜜臀av.com| 四季av一区二区三区| 亚洲一区二区自偷自拍| 国产午夜免费福利| 天天操天天干天天操| 国产精品一区二区在线播放| 综合av第一页| 337p亚洲精品色噜噜狠狠| 在线观看免费高清视频97| 奇门遁甲1982国语版免费观看高清| 国产99在线免费| 黄色一级片国产| 美女被艹视频网站| 一区视频免费观看| 精品国产九九九| 丁香六月综合激情| 亚洲图片欧美综合| 亚洲国产精品资源| 欧美亚洲在线观看| 欧美午夜精品久久久久免费视| 精品欧美一区免费观看α√| 亚洲av成人精品一区二区三区| 久久国产精品波多野结衣| 国产日本精品视频| 成人美女视频在线看| 亚洲成人资源网| 亚洲成人久久网| 26uuu日韩精品一区二区| 欧洲成人一区二区| 天天操天天爽天天射| 影音先锋男人看片资源| 国产乱码精品一区二区| 国产凹凸在线观看一区二区| 亚洲成人资源在线| 亚洲视频一区二区| 国产在线日韩在线| 亚洲乱码日产精品bd在线观看| 无码人妻精品一区二区三| 日韩久久精品视频| 男女男精品网站| 亚洲视频狠狠干| 亚洲大尺度美女在线| 日本精品免费观看| 一区二区精品视频| wwwxx日本| 亚洲av无码不卡| 国产乱人伦偷精品视频不卡| 亚洲va欧美va人人爽午夜| 亚洲欧美精品在线| 成人精品视频久久久久| 干日本少妇视频| 无码成人精品区在线观看| 99久久久无码国产精品免费蜜柚| 久久99日本精品| 亚洲国产一区二区三区| 国产小视频国产精品| 国产伦精品免费视频| 久久久久久久久久久综合| 国产人妻人伦精品1国产丝袜| 成年人晚上看的视频| 国产69精品一区二区亚洲孕妇| 日韩欧美国产成人| 久久久精品一区| 精品在线观看一区二区| 91视频这里只有精品| 国产精品黄色大片| 国产精品18久久久久久久久| 日韩欧美成人免费视频| 欧美国产视频日韩| 亚洲欧洲精品一区二区三区波多野1战4 | 精品福利一区二区三区免费视频| 国产成人av网| 影音欧美亚洲| 亚洲人成人无码网www国产 | 亚洲综合999| 夜夜嗨av一区二区三区免费区| www.一区二区三区| 色一情一区二区三区| 色老头在线视频| 2021中文字幕一区亚洲| 欧美xxxx老人做受| 成人激情在线观看| 在线看的黄色网址| 黄色片中文字幕| www.视频一区| 日韩一区二区三区视频| 国产精品视频精品| 37pao成人国产永久免费视频| 欧美日韩精品在线观看视频| 精品亚洲免费视频| 欧美色图第一页| 欧美一级淫片aaaaaaa视频| av日韩在线看| 福利所第一导航| 国产精品白丝av| 91精品午夜视频| 国产欧美va欧美va香蕉在| 成人亚洲视频在线观看| 青草视频在线观看免费| wwwwxxxxx欧美| 日韩精品视频在线| 久久国产精品久久| 亚洲一级av无码毛片精品| 丰满熟妇人妻中文字幕| 亚洲福利一区二区三区| 久久久伊人日本| 日韩小视频网站| 精品一区免费观看| 99re66热这里只有精品3直播| 亚洲第一精品久久忘忧草社区| 国产不卡一区二区在线观看 | 一区二区成人在线视频| 久久中文字幕国产| 蜜臀av性久久久久蜜臀av| 四虎免费在线视频| 粉嫩13p一区二区三区| 精品嫩草影院久久| 成人区精品一区二区| 激情综合激情五月| 天堂av资源网| 色综合久久久久久久久| 国产福利精品视频| 国产免费又粗又猛又爽| 中文字幕人妻色偷偷久久| 成人免费小视频| 久热爱精品视频线路一| 国产尤物av一区二区三区 | 精品国产麻豆免费人成网站| 国产成人精品福利一区二区三区| 黄色av电影网站| 亚洲 另类 春色 国产| 日本二三区不卡| 国产区精品视频| 久久久久xxxx| 亚洲美女综合网| 色吊一区二区三区 | 国产情侣小视频| 亚洲精品五月天| 国内久久久精品| 国产男女激情视频| 一级特黄aaaaaa大片| 一区二区激情视频| 日本精品久久中文字幕佐佐木| 亚洲免费一级视频| 亚洲国产成人精品一区二区三区| 欧美日韩在线视频一区| 国产精品久久久久久久久久| 免费黄频在线观看| 天堂网在线播放| 欧美少妇xxx| 亚洲xxx视频| www.中文字幕av| 国产剧情一区二区| 亚洲精品有码在线| 亚洲视频小说| 国产精品第72页| 中文字幕在线不卡一区二区三区| 色综合色综合久久综合频道88| 国产精品后入内射日本在线观看| 久久久久久久久久一级| 亚洲国产精品一区二区久久| 国产精品99久久久久久久久久久久 | 一区二区三区四区欧美日韩| 日本系列第一页| 亚洲欧洲av另类| 热久久99这里有精品| 伊人精品视频在线观看| 日韩精品久久理论片| 日韩女优制服丝袜电影| 日韩欧美亚洲区| 在线观看 中文字幕| 亚洲视频网在线直播| 热久久这里只有精品| 国产老头和老头xxxx×| 久久精品久久精品| 日韩精品高清视频| 国产黄色激情视频| 一二三区中文字幕| 日本高清不卡在线观看| 国产日韩欧美综合精品| 欧美爱爱免费视频| 国产精品视频一二三| 欧美整片在线观看| 99久久久无码国产精品性波多| 九九国产精品视频| 国产午夜精品全部视频在线播放 | 亚洲系列中文字幕| 大伊香蕉精品视频在线| 国产口爆吞精一区二区| 在线免费观看成人短视频| 精品一区久久久久久| 国产污视频在线看| 亚洲va欧美va人人爽午夜| 99精彩视频在线观看免费| 国产三级aaa| 国产精品人人做人人爽人人添| 日本欧美国产在线| 女同毛片一区二区三区| 91免费在线视频观看| 久久久综合免费视频| 男人女人拔萝卜视频| 国产精品一二三四五| 久久伊人精品一区二区三区| 不卡中文字幕在线观看| 国产在线播放一区三区四| 日韩性生活视频| 国产三级三级看三级| 久久国内精品视频| 日韩中文字在线| 日本黄大片一区二区三区| 麻豆国产精品官网| www.亚洲成人| 亚洲制服中文字幕| 国产成人激情av| 久久久人成影片一区二区三区观看| 麻豆精品国产传媒| 成人高清在线视频| 97超级碰在线看视频免费在线看| 国产精品嫩草av| 久久色中文字幕| 国产成人精品亚洲精品| 不卡的在线视频| 天天干天天av| 成年人网站免费视频| 久久久精品视频在线| 亚洲一本大道在线| 不卡一区二区三区四区五区| 婷婷色中文字幕| 精品美女国产在线| 欧美精品v日韩精品v国产精品| 久久久精品福利| 欧美三级资源在线| 欧美日韩一级在线| 国产suv精品一区二区69| 亚洲第一页中文字幕| 国产亚洲天堂网| 久久精品国产精品亚洲精品| 欧美乱大交做爰xxxⅹ性3| 国产xxxx视频| 欧美国产日韩a欧美在线观看| 国产在线视频不卡| 精品少妇theporn| 日本精品一区二区三区高清 | 国产日产亚洲精品| 玖玖爱免费视频| 91福利视频久久久久| 中文字幕第一页亚洲| 亚洲欧洲综合在线| 久久天堂av综合合色| 国产肉体xxxx裸体784大胆| 国产精品嫩草99a| 99热99热| 日韩xxx视频| 精品国产不卡一区二区三区| 一级片视频免费观看| av电影在线观看一区| 国产欧美一区二区三区视频| 国产在线拍揄自揄拍无码视频| 欧美午夜精品久久久久久孕妇| 嫩草影院中文字幕| 久久激情综合网| 热久久99这里有精品| 黄页网站免费观看| 欧美日韩亚洲国产综合| 黄色一级在线视频| 国产一区二区三区高清播放| 日本a级片电影一区二区| 欧美人禽zoz0强交| 欧美日韩亚洲综合一区| 国产精品秘入口18禁麻豆免会员 | 欧美私人免费视频| 日韩精品在线中文字幕| 久久精品国产精品青草| 国产成人精品视| 日本三级免费看| 欧美变态凌虐bdsm| 欧美一级小视频| 中文av字幕一区| 欧美日韩一区在线播放 | 国产精品麻豆视频| 蜜桃av色综合| 人人妻人人澡人人爽久久av| 欧美尺度大的性做爰视频| 亚洲精品天堂网| 在线观看亚洲a| 欧美va亚洲va| 蜜乳av另类精品一区二区| 特级做a爱片免费69| 99精品在线视频观看| 一区两区小视频| 又色又爽又黄无遮挡的免费视频| 久草视频免费在线| 日本黄色片视频| 国产精品无码一区| www视频在线| 国产成人福利片| 亚洲视频一区在线| 欧美午夜精品一区二区三区| 日韩精品视频在线观看网址| 国内精品美女av在线播放| 97人人香蕉| 妞干网视频在线观看| 91麻豆精品久久毛片一级| 日韩电影免费在线看| 欧美色区777第一页| 91亚洲精品在线| 少妇一级淫免费放| 亚洲一区二区视频在线播放| 亚洲国产高清在线| 亚洲欧美一区二区三区四区| 含羞草久久爱69一区| www.桃色.com| 久久婷婷一区二区| 免费的国产精品| 怡红院av一区二区三区| 欧美日韩精品电影| 欧美激情高清视频| 日韩激情久久| 一区二区三区四区影院| 亚洲天堂日韩av| 国产91久久久| 国产麻豆午夜三级精品| 亚洲女人小视频在线观看| 亚洲人成亚洲人成在线观看| 黄色国产精品一区二区三区| 久久人妻少妇嫩草av蜜桃| 国产视频在线观看免费| 国产盗摄视频一区二区三区| 综合激情成人伊人| 亚洲免费av网址| 久久国产精品免费一区| 中文字幕第一页在线视频| 人妻体体内射精一区二区| 日本55丰满熟妇厨房伦| 高潮无码精品色欲av午夜福利| a级精品国产片在线观看| 欧洲精品一区二区三区在线观看| 欧美亚洲激情视频| 久久久免费视频网站| 国产在线欧美在线| 五月婷婷丁香六月| 亚洲色图丝袜美腿| 国产小视频国产精品| 国产尤物99| 国产精品探花在线播放| 最近中文字幕在线免费观看| 国产成人在线免费| 日韩欧美在线第一页| 色综合视频一区中文字幕| 日韩精彩视频| 久久久久久久国产精品毛片| 欧美激情一区二区三区四区| 亚洲无亚洲人成网站77777| 日本午夜精品电影| www.51色.com| 国产一区二区小视频| 一区二区三区精密机械公司| 欧美黄色成人网| 中文字幕久精品免| www激情五月| 欧美亚洲精品在线观看| 一本色道a无线码一区v| 18一19gay欧美视频网站| 99精品视频国产| 国产在线精品不卡| 啊v视频在线一区二区三区 | 欧美人与性动交a欧美精品| 日韩一级在线免费观看| 丰满肉嫩西川结衣av| 欧美精品久久99久久在免费线| 视频一区二区综合| 国产网友自拍视频| 91亚洲精品乱码久久久久久蜜桃| 日韩久久免费电影| 亚洲国产精品久久久久婷婷老年 | 蜜臀av性久久久久蜜臀av麻豆| 欧美va亚洲va香蕉在线|