精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

四個(gè)在工作后才知道的SQL密技

數(shù)據(jù)庫(kù) SQL Server
SQL是大數(shù)據(jù)從業(yè)者的必備技能,大部分的大數(shù)據(jù)技術(shù)框架也都提供了SQL的解決方案。

[[416328]]

本文會(huì)分享四個(gè)在面試和工作中常用的幾個(gè)使用技巧,具體包括:

  • 日期與期間的高級(jí)使用
  • 臨時(shí)表與Common Table Expression (WITH)
  • Aggregation 與CASE WHEN的結(jié)合使用
  • Window Function的其他用途

數(shù)倉(cāng)?不就是寫寫SQL嗎…

數(shù)倉(cāng)|四個(gè)在工作后才知道的SQL密技

日期與時(shí)間段的篩選在工作中是經(jīng)常被用到的,因?yàn)樵诶?bào)表、儀表板和各種分析時(shí),周、月、季度、年度的表現(xiàn)往往是分析需要考量的重點(diǎn)。

時(shí)間區(qū)段的提取:Extract

  • 語(yǔ)法
  1. -- field可以是day、hour、minute, month, quarter等等  
  2. -- source可以是date、timestamp類型  
  3. extract(field FROM source)  
  • 使用
  1. SELECT extract(year FROM '2020-08-05 09:30:08');   -- 結(jié)果為 2020  
  2. SELECT extract(quarter FROM '2020-08-05 09:30:08');   -- 結(jié)果為 3  
  3. SELECT extract(month FROM '2020-08-05 09:30:08');   -- 結(jié)果為 8  
  4. SELECT extract(week FROM '2020-08-05 09:30:08');   -- 結(jié)果為 31,一年中的第幾周  
  5. SELECT extract(day FROM '2020-08-05 09:30:08');  -- 結(jié)果為 5  
  6. SELECT extract(hour FROM '2020-08-05 09:30:08');   -- 結(jié)果為 9  
  7. SELECT extract(minute FROM '2020-08-05 09:30:08');   -- 結(jié)果為 30  
  8. SELECT extract(second FROM '2020-08-05 09:30:08');   -- 結(jié)果為 8  

注意:

impala支持:YEAR, QUARTER, MONTH, DAY, HOUR, MINUTE, SECOND, MILLISECOND, EPOCH

Hive支持:day, dayofweek, hour, minute, month, quarter, second, week 和 year

Hive是從Hive2.2.0版本開始引入該函數(shù)

周的提取

  • 語(yǔ)法

在按照周的區(qū)間進(jìn)行統(tǒng)計(jì)時(shí),需要識(shí)別出周一的日期與周日的日期,這個(gè)時(shí)候經(jīng)常會(huì)用到下面的函數(shù):

  1. next_day(STRING start_date, STRING day_of_week)  
  2. -- 返回當(dāng)前日期對(duì)應(yīng)的下一個(gè)周幾對(duì)應(yīng)的日期  
  3. -- 2020-08-05為周三  
  4. SELECT next_day('2020-08-05','MO'-- 下一個(gè)周一對(duì)應(yīng)的日期:2020-08-10  
  5. SELECT next_day('2020-08-05','TU'-- 下一個(gè)周二對(duì)應(yīng)的日期:2020-08-11  
  6. SELECT next_day('2020-08-05','WE'-- 下一個(gè)周三對(duì)應(yīng)的日期:2020-08-12  
  7. SELECT next_day('2020-08-05','TH'-- 下一個(gè)周四對(duì)應(yīng)的日期:2020-08-06,即為本周四  
  8. SELECT next_day('2020-08-05','FR'-- 下一個(gè)周五對(duì)應(yīng)的日期:2020-08-07,即為本周五  
  9. SELECT next_day('2020-08-05','SA'-- 下一個(gè)周六對(duì)應(yīng)的日期:2020-08-08,即為本周六  
  10. SELECT next_day('2020-08-05','SU'-- 下一個(gè)周日對(duì)應(yīng)的日期:2020-08-09,即為本周日  
  11. -- 星期一到星期日的英文(Monday,Tuesday、Wednesday、Thursday、Friday、Saturday、Sunday)  
  • 使用

那么該如何獲取當(dāng)前日期所在周的周一對(duì)應(yīng)的日期呢?只需要先獲取當(dāng)前日期的下周一對(duì)應(yīng)的日期,然后減去7天,即可獲得:

  1. SELECT date_add(next_day('2020-08-05','MO'),-7);  

同理,獲取當(dāng)前日期所在周的周日對(duì)應(yīng)的日期,只需要先獲取當(dāng)前日期的下周一對(duì)應(yīng)的日期,然后減去1天,即可獲得:

  1. select date_add(next_day('2020-08-05','MO'),-1)   
  2. -- 2020-08-09  

月的提取

  • 語(yǔ)法

至于怎么將月份從單一日期提取出來呢,LAST_DAY這個(gè)函數(shù)可以將每個(gè)月中的日期變成該月的最后一天(28號(hào),29號(hào),30號(hào)或31號(hào)),如下:

  1. last_day(STRING date)  
  • 使用
  1. SELECT last_day('2020-08-05'); -- 2020-08-31  

除了上面的方式,也可以使用date_format函數(shù),比如:

  1. SELECT date_format('2020-08-05','yyyy-MM');  
  2. -- 2020-08  

日期的范圍

月的Window:使用add_months加上trunc()的應(yīng)用

  1. -- 返回加減月份之后對(duì)應(yīng)的日期  
  2. -- 2020-07-05  
  3. select add_months('2020-08-05', -1)  
  4.   
  5. -- 返回當(dāng)前日期的月初日期  
  6. -- 2020-08-01  
  7. select trunc("2020-08-05",'MM')  

由上面范例可見,單純使用add_months,減N個(gè)月的用法,可以剛好取到整數(shù)月的數(shù)據(jù),但如果加上trunc()函數(shù),則會(huì)從前N個(gè)月的一號(hào)開始取值。

  1. -- 選取2020-07-05到2020-08-05所有數(shù)據(jù)  
  2. BETWEEN add_months('2020-08-05', -1) AND '2020-08-05'   
  3. -- 選取2020-07-01到2020-08-05之間所有數(shù)據(jù)  
  4. BETWEEN add_months(trunc("2020-08-05",'MM'),-1) AND '2020-08-05'   
數(shù)倉(cāng)|四個(gè)在工作后才知道的SQL密技

這兩種方法是日常工作中經(jīng)常被使用到,對(duì)于一些比較復(fù)雜的計(jì)算任務(wù),為了避免過多的JOIN,通常會(huì)先把一些需要提取的部分?jǐn)?shù)據(jù)使用臨時(shí)表或是CTE的形式在主要查詢區(qū)塊前進(jìn)行提取。

臨時(shí)表的作法:

  1. CREATE TEMPORARY TABLE table_1 AS    
  2.     SELECT   
  3.         columns  
  4.     FROM table A;  
  5. CREATE TEMPORARY table_2 AS   
  6.     SELECT  
  7.         columns  
  8.     FROM table B;  
  9.   
  10. SELECT  
  11.     table_1.columns,  
  12.     table_2.columns,   
  13.     c.columns   
  14. FROM table C JOIN table_1  
  15.      JOIN table_2;  

CTE的作法:

-- 注意Hive、Impala支持這種語(yǔ)法,低版本的MySQL不支持(高版本支持)

  1. -- 注意Hive、Impala支持這種語(yǔ)法,低版本的MySQL不支持(高版本支持)  
  2. WITH employee_by_title_count AS (  
  3.     SELECT  
  4.         t.name as job_title  
  5.         , COUNT(e.id) as amount_of_employees  
  6.     FROM employees e  
  7.         JOIN job_titles t on e.job_title_id = t.id  
  8.     GROUP BY 1  
  9. ),  
  10. salaries_by_title AS (  
  11.      SELECT  
  12.          name as job_title  
  13.          , salary  
  14.      FROM job_titles  
  15. )  
  16. SELECT *  
  17. FROM employee_by_title_count e  
  18.     JOIN salaries_by_title s ON s.job_title = e.job_title  

可以看到TEMP TABLE和CTE WITH的用法其實(shí)非常類似,目的都是為了讓你的Query更加一目了然且優(yōu)雅簡(jiǎn)潔。很多人習(xí)慣將所有的Query寫在單一的區(qū)塊里面,用過多的JOIN或SUBQUERY,導(dǎo)致最后邏輯丟失且自己也搞不清楚寫到哪里,適時(shí)的使用TEMP TABLE和CTE作為輔助,絕對(duì)是很加分的。

 

數(shù)倉(cāng)|四個(gè)在工作后才知道的SQL密技

 

將Aggregation function (SUM/COUNT/COUNT DISTINCT/MIN/MAX) 結(jié)合CASE WHEN是最強(qiáng)大且最有趣的使用方式。這樣的使用創(chuàng)造出一種類似EXCEL中SUMIF/COUNTIF的效果,可以用這個(gè)方式做出很多高效的分析。

  • Table Name: order
  • Column: register_date, order_date, user_id, country, order_sales, order_id

數(shù)據(jù)準(zhǔn)備

  1. CREATE TABLE order(  
  2.     register_date string,  
  3.     order_date string,  
  4.     user_id string,  
  5.     country string,  
  6.     order_sales decimal(10,2),  
  7.     order_id string);  
  8.   
  9. INSERT INTO TABLE order VALUES("2020-06-07","2020-06-09","001",'c0',210,"o1");  
  10. INSERT INTO TABLE order VALUES("2020-06-08","2020-06-09","002",'c1',220,"o2");  
  11. INSERT INTO TABLE order VALUES("2020-06-07","2020-06-10","003",'c2',230,"o3");  
  12. INSERT INTO TABLE order VALUES("2020-06-09","2020-06-10","004",'c3',200,"o4");  
  13. INSERT INTO TABLE order VALUES("2020-06-07","2020-06-20","005",'c4',300,"o5");  
  14. INSERT INTO TABLE order VALUES("2020-06-10","2020-06-23","006",'c5',400,"o6");  
  15. INSERT INTO TABLE order VALUES("2020-06-07","2020-06-19","007",'c6',600,"o7");  
  16. INSERT INTO TABLE order VALUES("2020-06-12","2020-06-18","008",'c7',700,"o8");  
  17. INSERT INTO TABLE order VALUES("2020-06-07","2020-06-09","009",'c8',100,"o9");  
  18. INSERT INTO TABLE order VALUES("2020-06-15","2020-06-18","0010",'c9',200,"o10");  
  19. INSERT INTO TABLE order VALUES("2020-06-15","2020-06-19","0011",'c10',250,"o11");  
  20. INSERT INTO TABLE order VALUES("2020-06-12","2020-06-29","0012",'c11',270,"o12");  
  21. INSERT INTO TABLE order VALUES("2020-06-16","2020-06-19","0013",'c12',230,"o13");  
  22. INSERT INTO TABLE order VALUES("2020-06-17","2020-06-20","0014",'c13',290,"o14");  
  23. INSERT INTO TABLE order VALUES("2020-06-20","2020-06-29","0015",'c14',203,"o15");  

CASE WHEN 時(shí)間,進(jìn)行留存率/使用率的分析

  1. -- 允許多列去重  
  2. set hive.groupby.skewindata = false  
  3. -- 允許使用位置編號(hào)分組或排序  
  4. set hive.groupby.orderby.position.alias = true  
  5.   
  6. SELECT  
  7.     date_add(Next_day(register_date, 'MO'),-1) AS week_end,  
  8.     COUNT(DISTINCT CASE WHEN order_date BETWEEN register_date AND date_add(register_date,6) THEN user_id ENDAS first_week_order,  
  9.     COUNT(DISTINCT CASE WHEN order_date BETWEEN date_add(register_date ,7) AND date_add(register_date,13) THEN user_id ENDAS sencod_week_order,  
  10.     COUNT(DISTINCT CASE WHEN order_date BETWEEN date_add(register_date ,14) AND date_add(register_date,20) THEN user_id ENDas third_week_order  
  11. FROM order  
  12. GROUP BY 1  

上面的示例可以得知到用戶在注冊(cè)之后,有沒有創(chuàng)建訂單的行為。比如注冊(cè)后的第一周,第二周,第三周分別有多少下單用戶,這樣可以分析出用戶的使用情況和留存情況。

注意:上面的使用方式,需要配置兩個(gè)參數(shù):

hive.groupby.skewindata = false:允許多列去重,否則報(bào)錯(cuò):

SemanticException [Error 10022]: DISTINCT on different columns not supported with skew in data

hive.groupby.orderby.position.alias = true:允許使用位置編號(hào)分組或排序,否則報(bào)錯(cuò):

SemanticException [Error 10025]: line 79:13 Expression not in GROUP BY key ''MO''

CASE WHEN 時(shí)間,進(jìn)行每個(gè)用戶消費(fèi)金額的分析

  1. SELECT  
  2.     user_id,  
  3.     SUM (CASE WHEN order_date BETWEEN register_date AND date_add(register_date,6) THEN order_sales ENDAS first_week_amount,  
  4.     SUM (CASE WHEN order_date BETWEEN date_add(register_date ,7) AND date_add(register_date,13) THEN order_sales ENDAS second_week_amount  
  5.     FROM order  
  6. GROUP BY 1  

通過篩選出注冊(cè)與消費(fèi)的日期,并且進(jìn)行消費(fèi)金額統(tǒng)計(jì),每個(gè)用戶在每段時(shí)間段(注冊(cè)后第一周、第二周…以此類推)的消費(fèi)金額,可以觀察用戶是否有持續(xù)維持消費(fèi)習(xí)慣或是消費(fèi)金額變低等分析。

CASE WHEN數(shù)量,消費(fèi)金額超過某一定額的數(shù)量分析

  1. SELECT  
  2.     user_id,  
  3.     COUNT(DISTINCT CASE WHEN order_sales >= 100 THEN order_id ENDAS count_of_order_greateer_than_100  
  4. FROM order  
  5. GROUP BY 1  

上面的示例就是類似countif的用法,針對(duì)每個(gè)用戶,統(tǒng)計(jì)其訂單金額大于某個(gè)值的訂單數(shù)量,分析去篩選出高價(jià)值的顧客。

CASE WHEN數(shù)量,加上時(shí)間的用法

  1. SELECT  
  2.     user_id,  
  3.     MIN(CASE WHEN order_sales > 100 THEN order_date ENDAS first_order_date_over1000,  
  4.     MAX(CASE WHEN order_sales > 100 THEN order_date ENDAS recent_order_date_over100  
  5. FROM order  
  6. GROUP BY 1  

CASE WHEN加上MIN/MAX時(shí)間,可以得出該用戶在其整個(gè)使用過程中,首次購(gòu)買超過一定金額的訂單日期,以及最近一次購(gòu)買超過一定金額的訂單日期。

數(shù)倉(cāng)|四個(gè)在工作后才知道的SQL密技

Window Function既是工作中經(jīng)常使用的函數(shù),也是面試時(shí)經(jīng)常被問到的問題。常見的使用場(chǎng)景是分組取topN。本文介紹的另外一個(gè)用法,使用開窗函數(shù)進(jìn)行用戶訪問session分析。

session是指在指定的時(shí)間段內(nèi)用戶在網(wǎng)站上發(fā)生的一系列互動(dòng)。例如,一次session可以包含多個(gè)網(wǎng)頁(yè)瀏覽、事件、社交互動(dòng)和電子商務(wù)交易。session就相當(dāng)于一個(gè)容器,其中包含了用戶在網(wǎng)站上執(zhí)行的操作。

數(shù)倉(cāng)|四個(gè)在工作后才知道的SQL密技

session具有一個(gè)過期時(shí)間,比如30分鐘,即不活動(dòng)狀態(tài)超過 30 分鐘,該session就會(huì)過時(shí)。

假設(shè)張三訪問了網(wǎng)站,從他到達(dá)網(wǎng)站的那一刻開始,就開始計(jì)時(shí)。如果過了 30 分鐘,而張三仍然沒有進(jìn)行任何形式的互動(dòng),則視為本次session結(jié)束。但是,只要張三與某個(gè)元素進(jìn)行了互動(dòng)(例如發(fā)生了某個(gè)事件、社交互動(dòng)或打開了新網(wǎng)頁(yè)),就會(huì)在該次互動(dòng)的時(shí)間基礎(chǔ)上再增加 30 分鐘,從而重置過期時(shí)間。

數(shù)倉(cāng)|四個(gè)在工作后才知道的SQL密技

數(shù)據(jù)準(zhǔn)備

  • Table Name: user_visit_action
  • Columns: user_id, session_id , page_url, action_time
  1. CREATE TABLE user_visit_action(   
  2.     user_id string,  
  3.     session_id string,  
  4.     page_url string,  
  5.     action_time string);  
  6.       
  7. INSERT INTO TABLE user_visit_action VALUES("001","ss001","http://a.com","2020-08-06 13:34:11.478");  
  8. INSERT INTO TABLE user_visit_action VALUES("001","ss001","http://b.com","2020-08-06 13:35:11.478");  
  9. INSERT INTO TABLE user_visit_action VALUES("001","ss001","http://c.com","2020-08-06 13:36:11.478");  
  10.   
  11. INSERT INTO TABLE user_visit_action VALUES("001","ss002","http://a.com","2020-08-06 14:30:11.478");  
  12. INSERT INTO TABLE user_visit_action VALUES("001","ss002","http://b.com","2020-08-06 14:31:11.478");  
  13. INSERT INTO TABLE user_visit_action VALUES("001","ss002","http://e.com","2020-08-06 14:33:11.478");  
  14. INSERT INTO TABLE user_visit_action VALUES("001","ss002","http://f.com","2020-08-06 14:35:11.478");  
  15.   
  16. INSERT INTO TABLE user_visit_action VALUES("002","ss003","http://u.com","2020-08-06 18:34:11.478");  
  17. INSERT INTO TABLE user_visit_action VALUES("002","ss003","http://k.com","2020-08-06 18:38:11.478");  

用戶訪問session分析

范例的資料表如上,有使用者、訪次和頁(yè)面的連接和時(shí)間。以下則使用partition by來表達(dá)每個(gè)使用者在不同訪次之間的瀏覽行為。

  1. SELECT  
  2.     user_id,  
  3.     session_id,  
  4.     page_url,  
  5.     DENSE_RANK() OVER (PARTITION BY user_id, session_id ORDER BY action_time ASCAS page_order,  
  6.     MIN(action_time) OVER (PARTITION BY user_id, session_id) AS session_start_time,  
  7.     MAX(action_time) OVER (PARTITION BY user_id, session_id) AS session_finisht_time  
  8. FROM user_visit_action  

上面的查詢會(huì)返回針對(duì)每個(gè)用戶、每次的到訪,瀏覽頁(yè)面行為的先后次序,以及該session開始與結(jié)束的時(shí)間,以此為基礎(chǔ)就可以將這個(gè)結(jié)果存入TEMP TABLE或是CTE ,進(jìn)行更進(jìn)一步的分析。

小結(jié)

本文主要分享了四個(gè)在工作和面試中經(jīng)常遇到的SQL使用技巧。當(dāng)然,這些都與具體的分析業(yè)務(wù)息息相關(guān)。最后,不管你是SQL boy or SQL girl,只要是掌握一些技巧,相信都能夠Happy SQL querying 。

 

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2023-04-11 08:49:42

排序函數(shù)SQL

2022-06-30 08:31:54

排序函數(shù)SQL

2021-08-10 08:01:08

Synchronize鎖膨脹鎖消除

2023-11-03 00:28:44

ApacheFlink

2024-11-04 14:18:32

JavaScript編程語(yǔ)言開發(fā)

2022-07-01 13:56:41

云計(jì)算混合云遷移云

2015-03-30 12:54:55

SQL ServerSQL Server

2016-12-09 09:31:22

HadoopSQL大數(shù)據(jù)

2015-06-10 16:23:33

WWDC庫(kù)克蘋果

2024-01-18 07:46:53

HookReact回調(diào)函數(shù)

2023-07-06 07:09:03

云原生工具架構(gòu)

2022-02-23 15:09:18

數(shù)字化轉(zhuǎn)型國(guó)有企業(yè)數(shù)據(jù)

2013-03-18 13:31:28

2024-06-25 12:45:05

2023-05-24 06:56:18

實(shí)用AI工具

2025-02-27 08:33:13

2011-03-21 10:26:10

SQL Server視圖管理

2011-03-28 17:12:36

SQL Server數(shù)轉(zhuǎn)換服務(wù)

2021-08-02 10:22:29

大數(shù)據(jù)安全云計(jì)算數(shù)據(jù)安全
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

精品人妻一区二区三区日产乱码| 三年中国中文观看免费播放| www555久久| 99久久伊人网影院| 国产精品欧美日韩一区二区| 日本二区三区视频| 中文字幕一区二区三区四区久久| 午夜久久福利影院| 先锋影音亚洲资源| 国产黄色大片网站| 新狼窝色av性久久久久久| 最新中文字幕亚洲| 中文字幕永久免费| 色香欲www7777综合网| 亚洲视频 欧洲视频| 精品999在线观看| 久草热在线观看| 国产一区二区三区自拍| 国产亚洲精品久久| 亚洲精品乱码久久久久久9色| 亚洲欧洲高清| 亚洲精品视频一区二区| 欧美中日韩免费视频| 精品人妻一区二区三区日产乱码 | 亚洲精品国产精品国自产在线 | 日韩美女在线视频| 亚洲人成色77777| 污污视频在线看| 国产欧美精品一区二区三区四区| 国产精品日韩一区二区三区| 亚洲性生活大片| 久久久xxx| 国模叶桐国产精品一区| 麻豆网址在线观看| 国产一区二区三区网| 精品国产乱码久久久久久闺蜜| 高清一区二区视频| 亚洲欧美韩国| 黑人精品xxx一区一二区| 加勒比海盗1在线观看免费国语版| 成人动漫在线免费观看| 97超碰欧美中文字幕| 国产91视觉| 国产精品呻吟久久| 日韩电影在线观看一区| 日本欧美爱爱爱| 日本熟女一区二区| 亚洲电影av| 久久久久久国产免费| 日本精品在线免费观看| 成人情趣视频| 中文字幕久久久| 真实乱视频国产免费观看| 欧美日韩看看2015永久免费| 精品乱码亚洲一区二区不卡| 尤物网站在线看| 亚洲高清影院| 91精品综合久久久久久| 五月花丁香婷婷| 欧美性生活一级| 欧美日韩国产大片| 五月婷婷丁香色| 99精品在免费线偷拍| 色视频成人在线观看免| 国产福利视频在线播放| 第84页国产精品| 一本到高清视频免费精品| koreanbj精品视频一区| 性欧美18xxxhd| 91久久线看在观草草青青| 日日碰狠狠躁久久躁婷婷| 都市激情综合| 欧美午夜精品一区| 免费成人黄色大片| 日韩激情精品| 精品第一国产综合精品aⅴ| 丰满人妻一区二区三区免费视频棣| av日韩精品| 日韩国产欧美精品在线| 亚洲国产日韩一区无码精品久久久| 日韩精品免费一区二区三区| 久久人人爽人人爽爽久久| 成年人一级黄色片| 精品福利av| 欧美最猛性xxxxx(亚洲精品)| 亚洲男人天堂网址| 狠狠色2019综合网| 国产精品一区二| 黑人与亚洲人色ⅹvideos| 国产精品麻豆久久久| 男人草女人视频| 忘忧草在线日韩www影院| 欧美视频精品在线| 爱情岛论坛亚洲自拍| 精品国产一区二区三区成人影院| 亚洲免费精彩视频| 国产人与禽zoz0性伦| 狠狠爱www人成狠狠爱综合网| 欧美亚洲成人网| 夜夜狠狠擅视频| 99这里只有久久精品视频| 日韩电影大全在线观看| 麻豆蜜桃在线| 91国偷自产一区二区三区观看| 久久久久亚洲av无码麻豆| 久久精品亚洲成在人线av网址| 国产亚洲精品久久久优势| 高h视频免费观看| 天堂av在线一区| 亚洲综合中文字幕在线| 视频午夜在线| 一区二区三区四区中文字幕| 激情网站五月天| 日韩成人在线看| 夜夜嗨av色一区二区不卡| 久久国产精品二区| 麻豆高清免费国产一区| 好看的日韩精品| 美女免费久久| 91成人在线免费观看| 欧美一级片在线免费观看| 日韩欧美精品一区| 国产91成人video| 国产av无码专区亚洲a∨毛片| 国产日韩精品视频一区| 久色视频在线播放| 色妞ww精品视频7777| 中文字幕一区电影| 中文字幕亚洲精品一区| 粉嫩在线一区二区三区视频| 夜夜爽99久久国产综合精品女不卡 | 欧美日韩亚洲国产另类| 蜜桃免费网站一区二区三区| 久久av免费一区| 动漫一区二区| 日韩一区二区中文字幕| 日本二区三区视频| 蜜桃视频在线一区| 美女亚洲精品| 免费h在线看| 欧美精品一区二| 一级黄色录像视频| 国产一区日韩二区欧美三区| 亚洲精品高清视频| 99久久综合国产精品二区| 亚洲欧美国产精品专区久久| 日韩三级视频在线播放| 福利电影一区二区| 国产精品久久久久7777| 91精品入口| 欧美大片免费观看在线观看网站推荐| 国产精品久久欧美久久一区| **性色生活片久久毛片| www.com操| 久久国产影院| 成人免费观看a| 日本高清视频在线播放| 欧美天天综合网| youjizz亚洲女人| 蜜臀精品一区二区三区在线观看| 午夜欧美一区二区三区免费观看| 欧美特大特白屁股xxxx| 一区二区成人精品| 在线观看免费中文字幕| 综合自拍亚洲综合图不卡区| 日韩精品aaa| 欧美成人国产| 国产伦精品一区二区三毛| 麻豆av在线播放| 亚洲黄色www| 国内自拍视频在线播放| 国产日韩欧美激情| 欧美成人手机在线视频| 欧美黄色一级视频| 操一操视频一区| av资源在线| 在线成人激情黄色| 97成人在线观看| 亚洲中国最大av网站| 国产又黄又粗又猛又爽的视频| 久久99伊人| 在线免费观看一区二区三区| 8x国产一区二区三区精品推荐| 91精品国产九九九久久久亚洲| 黄色在线播放| 欧美一区二区三区视频免费播放| 精品无码久久久久久久| 91一区在线观看| 色婷婷综合网站| 黄色精品一区| 欧美午夜精品久久久久久蜜| 成人在线啊v| 午夜精品一区二区三区av| 成人欧美亚洲| 精品久久久久久最新网址| 中文字幕69页| 一区二区三区免费在线观看| 精品人妻无码一区二区三区 | 精品视频99| 不卡一卡2卡3卡4卡精品在| 中文字幕这里只有精品| 北条麻妃99精品青青久久| 欧美视频在线观看一区二区三区| 91激情五月电影| 欧美又粗又大又长| 国产日韩精品一区二区浪潮av | 99久久国产免费看| 国产色视频在线播放| 99国产精品私拍| 欧美日韩视频免费在线观看| 五月国产精品| 97碰碰视频| 黄色成人在线观看网站| 538国产精品一区二区在线| 最新国产在线拍揄自揄视频| 一区二区欧美久久| 色呦呦中文字幕| 91精选在线观看| 中文无码精品一区二区三区| 午夜视黄欧洲亚洲| avtt天堂在线| 国产精品看片你懂得| 玖草视频在线观看| 丰满岳乱妇一区二区三区| 日韩av.com| 日本美女一区二区三区| 香港三级韩国三级日本三级| 国产精品99一区二区| 一区二区视频在线免费| 蜜桃tv一区二区三区| 国产精品一国产精品最新章节| **欧美日韩在线| 国产精品亚洲精品| 蜜桃视频成人m3u8| 欧美中文字幕在线视频| 久草在线资源福利站| 久久久久久综合网天天| 亚洲区欧洲区| 久久亚洲精品一区二区| 日本激情在线观看| 少妇精69xxtheporn| 国产福利电影在线| 亚洲女人天堂网| 青春有你2免费观看完整版在线播放高清 | 91麻豆swag| 国产精品嫩草av| 99久久久无码国产精品| 中文字幕精品久久久| 成人丝袜高跟foot| 国产伦精品一区二区三区精品| 国产精品一区二区黑丝| 手机av在线网| 久草在线在线精品观看| 国产精品视频中文字幕| 蜜芽一区二区三区| 在线观看免费av网址| 老司机免费视频一区二区三区| 国产精品区在线| 九九热在线视频观看这里只有精品| 亚洲欧美视频二区| 精品系列免费在线观看| 999久久久精品视频| 国产自产视频一区二区三区| 成年人性生活视频| 夫妻av一区二区| 亚洲永久无码7777kkk| 国产亚洲欧美一区在线观看| 国产又粗又长又黄的视频| 国产精品美女久久久久高潮| 欧美肥妇bbwbbw| 一区二区三区日韩欧美精品| 日本三级视频在线| 欧美性猛交xxxx乱大交| 国产精品成人久久久| 日韩一区二区三区免费看| 囯产精品一品二区三区| 日韩成人av在线播放| 成年人视频网站在线| 久久天天躁狠狠躁夜夜躁 | 亚洲图片激情小说| 久久久久香蕉视频| 黑人巨大精品欧美一区二区免费| 在线观看国产区| 欧美一区二区三区不卡| 手机av在线免费观看| 中日韩美女免费视频网站在线观看 | 在线观看三级网站| 亚洲激情视频| 搡女人真爽免费午夜网站| 国产麻豆成人精品| 国产精品久久不卡| 亚洲av网址在线| 国产不卡网站| 国产日韩精品在线| 高清一区二区三区| 日韩精品一区二区三区丰满| 亚洲久久久久| 九九九九免费视频| 九九精品视频在线看| 熟妇人妻久久中文字幕| 国产精品欧美极品| 国产五月天婷婷| 欧美日本免费一区二区三区| 老牛影视av牛牛影视av| 自拍偷拍亚洲在线| 国产理论在线| 亚洲一区二区久久久久久久| 九九久久婷婷| 黄色一级片国产| 热久久国产精品| 无码一区二区精品| 亚洲色图欧洲色图| 五月激情丁香网| 日韩av在线免费| 午夜影院免费在线| 国产欧美日韩免费看aⅴ视频| 美国成人xxx| 亚洲av综合色区| 免费成人av在线播放| 精品夜夜澡人妻无码av| 亚洲一卡二卡三卡四卡无卡久久| 亚洲一级av毛片| 亚洲一级黄色av| 中文在线最新版地址| 国产久一道中文一区| 欧美淫片网站| 男人午夜视频在线观看| 中文字幕国产一区| 黄色在线视频网址| 亚洲国产欧美一区| 国产羞羞视频在线播放| 91香蕉国产在线观看| 国产精品毛片久久| 成人免费在线观看视频网站| 久久久久国产精品人| 青青草成人av| 337p日本欧洲亚洲大胆色噜噜| 婷婷色在线资源| 亚洲综合精品一区二区| 色一区二区三区四区| 成人性生交免费看| 国产精品日产欧美久久久久| 69亚洲精品久久久蜜桃小说| 日韩精品在线免费| 在线天堂中文资源最新版| 国产自产精品| 在线视频精品| 亚洲黄色在线网站| 欧美性猛交xxxx富婆| 日本成人一区二区三区| 日本高清视频一区| 国产在视频线精品视频www666| 亚洲中文字幕无码不卡电影| 26uuu另类欧美| 国产成人无码一区二区在线播放| 精品亚洲一区二区| 亚洲成人短视频| 亚洲精品永久www嫩草| 精品无码三级在线观看视频 | 欧美日韩看看2015永久免费| 国产视频九色蝌蚪| 久久久久久久综合狠狠综合| 伊人成年综合网| 色妞久久福利网| 国产区一区二| 成人网站免费观看入口| 99久久精品国产导航| 最近免费中文字幕大全免费版视频| 亚洲图片在线综合| 日本免费成人| 9色视频在线观看| 成人av午夜电影| jizz国产在线观看| 日韩在线观看免费av| 视频精品二区| 国产91在线免费| 亚洲国产高清不卡| 国产男男gay网站| 久久免费视频网站| 久久成人高清| 91丝袜超薄交口足| 午夜视频在线观看一区二区| 成人在线二区| 亚洲一区亚洲二区| 国产精品亚洲产品| 人人艹在线视频| 亚洲成色777777女色窝| 日本综合字幕| 日本久久高清视频| 91视频www| 国产免费av观看| 欧美有码在线观看视频| 天天做天天爱天天爽综合网| 成人在线视频免费播放| 欧美视频一区在线观看| 男女视频在线| 五月天婷亚洲天综合网鲁鲁鲁| 国产不卡视频在线观看| 免费看一级视频| 欧美国产一区二区三区|