天天看點

sql:常用:having 子句

HAVING 子句

mysql:

不一定非得跟在group by後

select * from t_test where user_id in('30010','91082','10217')  having minage>30
           

hive:

必須跟在group by後

在 SQL 中增加 HAVING 子句原因是,WHERE 關鍵字無法與聚合函數一起使用。

HAVING 子句可以讓我們篩選分組後的各組資料。

      以下sql隻查一次未優化

 SELECT
            COUNT(company_name) AS countnum,
            company_name,
            tel_tru,
            tel_full
        FROM
            (
                SELECT
                    company_name,
                    tel_full,
                    case 
                     when length(tel_l)<=12 then RIGHT(tel_l,7)
                     when length(tel_l)>12 then RIGHT(tel_l,12) 
                     end  tel_tru 
                    
                FROM
                    (
                        SELECT
                            company_name,
                         
                            REPLACE(tel,' ','') tel_l,
                            tel tel_full
                        FROM
                            t_contact) a
                            
                             ) b
        GROUP BY
            tel_tru 
            
        having  countnum >= 10