您好,登錄后才能下訂單哦!
這篇文章主要講解了“GROUP BY語句及HAVING語句怎么用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“GROUP BY語句及HAVING語句怎么用”吧!
GROUP BY 語句
創建一個股價交易表
CREATE EXTERNAL TABLE IF NOT EXISTS stocks (
exchange STRING,
symbol STRING,
ymd STRING,
price_open FLOAT,
price_high FLOAT,
price_low FLOAT,
price_close FLOAT,
volume INT,
price_adj_colse FLOAT)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOATION '/data/stocks';
eg:按照年份對股票記錄進行分組,然后計算每年的平均收盤價
hive>SELECT year(ymd),avg(price_close) FROM stocks
>WHERE exchange='NASDAQ' AND symbol='AAPL'
>GROUP BY year(ymd);
1984 25.57
1985 20.54
1986 32.46
1987 53.89
1988 41.66
1989 37.56
1990 52.50
...
HAVING 語句
HAVING子句允許我們通過一個簡單語法完成原本需要通過子查詢才能對GROUP BY語句產生分組進行條件過濾的任務。
eg:如下是對前面的查詢語句增加一個HAVING語句來限制輸出結果中年平均收盤價要大于50.0
hive>SELECT year(ymd),avg(price_close) FROM stocks
>WHERE exchange='NASDAQ' AND symbol='AAPL'
>GROUP BY year(ymd)
> HAVING avg(price_close) >50.0;
1987 53.89
1990 52.50
...
如果沒使用HAVING子句,那么這個查詢將需要使用一個嵌套子查詢:
hive>SELECT s2.year,s2.avg FROM
>(SELECT year(ymd) AS year,avg(price_close) AS avg FROM stocks
>WHERE exchange='NASDAQ' AND symbol='AAPL'
>GROUP BY year(ymd) ) s2
>WHERE s2.avg>50.0;
1987 53.89
1990 52.50
...
感謝各位的閱讀,以上就是“GROUP BY語句及HAVING語句怎么用”的內容了,經過本文的學習后,相信大家對GROUP BY語句及HAVING語句怎么用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。