Hi, Is it possible to have multiple conditions in Having clause ?
I get an error when i'm trying this. Thanks a lot. 2013/8/30 Jérôme Verdier <verdier.jerom...@gmail.com> > Thanks Stephen, > > Yes i realise that it was so a stupid question....Maybe i wasn't really > awaked this morning ;-) > > now it's working well. > > Thanks everyone. > > > 2013/8/30 Stephen Sprague <sprag...@gmail.com> > >> awright Jerome. look closely at the error message. you can figure this >> one out. >> >> >> On Fri, Aug 30, 2013 at 1:17 AM, Jérôme Verdier < >> verdier.jerom...@gmail.com> wrote: >> >>> Ok, thanks for this solution. >>> >>> Unfortunately, i have rewrited my script like this : >>> >>> INSERT INTO TABLE default.THM_CA_RGRP_PRODUITS_SEM >>> >>> SELECT >>> '${hiveconf:in_co_societe}' as co_societe, >>> '${hiveconf:in_co_an_semaine}' as co_an_semaine, >>> a.type_entite as type_entite, >>> a.code_entite as code_entite, >>> a.type_rgrp_produits as type_rgrp_produits, >>> a.co_rgrp_produits as co_rgrp_produits, >>> SUM(a.MT_CA_NET_TTC) as MT_CA_NET_TTC, >>> SUM(a.MT_OBJ_CA_NET_TTC) as MT_OBJ_CA_NET_TTC, >>> SUM(a.NB_CLIENTS) as NB_CLIENTS, >>> SUM(a.MT_CA_NET_TTC_COMP) as MT_CA_NET_TTC_COMP, >>> SUM(a.MT_OBJ_CA_NET_TTC_COMP) as >>> MT_OBJ_CA_NET_TTC_COMP, >>> SUM(a.NB_CLIENTS_COMP) as NB_CLIENTS_COMP >>> from >>> default.THM_CA_RGRP_PRODUITS_JOUR a >>> JOIN default.CALENDRIER b >>> -- A verifier >>> WHERE a.co_societe = '${hiveconf:in_co_societe}' >>> >>> AND ('${hiveconf:flg_reprise_entite}' = 0 OR a.type_entite<>'MAG') >>> GROUP BY >>> a.type_entite, >>> a.code_entite, >>> a.type_rgrp_produits, >>> a.co_rgrp_produits; >>> HAVING >>> a.dt_jour >= MIN(b.dt_jour) >>> AND a.dt_jour < MIN(b.dt_jour)+1 >>> >>> And i have a new error : >>> >>> FAILED: ParseException line 2:6 cannot recognize input near 'HAVING' 'a' >>> '.' >>> >>> My Hive version is 0.11 and HAVING function have been implemented in 0.7 >>> so it would work fine. >>> >>> >>> >>> 2013/8/29 Stephen Sprague <sprag...@gmail.com> >>> >>>> indeed. you nailed it. >>>> >>>> >>>> On Thu, Aug 29, 2013 at 11:53 AM, John Meagher >>>> <john.meag...@gmail.com>wrote: >>>> >>>>> Aggregate functions need to go in a HAVING clause instead of the WHERE >>>>> clause. WHERE clauses are applied prior to aggregation, HAVING is >>>>> applied post aggregation. >>>>> >>>>> select ... >>>>> from ... >>>>> where some row level filter >>>>> group by ... >>>>> having some aggregate level filter >>>>> >>>>> >>>>> On Thu, Aug 29, 2013 at 2:49 PM, Jason Dere <jd...@hortonworks.com> >>>>> wrote: >>>>> > Looks like the issue is the use of min() within the WHERE clause - >>>>> the place >>>>> > where the exception is being thrown has the following comment: >>>>> > // UDAF in filter condition, group-by caluse, param of >>>>> funtion, etc. >>>>> > >>>>> > >>>>> > On Aug 29, 2013, at 3:01 AM, Jérôme Verdier < >>>>> verdier.jerom...@gmail.com> >>>>> > wrote: >>>>> > >>>>> > Hi everybody, >>>>> > >>>>> > I am coding some HiveQL script to do some calculations. >>>>> > >>>>> > I have a problem with the min() function. >>>>> > >>>>> > My hive script is below : >>>>> > >>>>> > INSERT INTO TABLE default.THM_CA_RGRP_PRODUITS_SEM >>>>> > >>>>> > SELECT >>>>> > '${hiveconf:in_co_societe}' as co_societe, >>>>> > '${hiveconf:in_co_an_semaine}' as co_an_semaine, >>>>> > a.type_entite as type_entite, >>>>> > a.code_entite as code_entite, >>>>> > a.type_rgrp_produits as >>>>> type_rgrp_produits, >>>>> > a.co_rgrp_produits as >>>>> co_rgrp_produits, >>>>> > SUM(a.MT_CA_NET_TTC) as MT_CA_NET_TTC, >>>>> > SUM(a.MT_OBJ_CA_NET_TTC) as >>>>> MT_OBJ_CA_NET_TTC, >>>>> > SUM(a.NB_CLIENTS) as NB_CLIENTS, >>>>> > SUM(a.MT_CA_NET_TTC_COMP) as >>>>> MT_CA_NET_TTC_COMP, >>>>> > SUM(a.MT_OBJ_CA_NET_TTC_COMP) as >>>>> MT_OBJ_CA_NET_TTC_COMP, >>>>> > SUM(a.NB_CLIENTS_COMP) as NB_CLIENTS_COMP >>>>> > from >>>>> > default.THM_CA_RGRP_PRODUITS_JOUR a >>>>> > JOIN default.CALENDRIER b >>>>> > -- A verifier >>>>> > WHERE CAST(a.dt_jour AS TIMESTAMP) >= >>>>> > CAST(min(UNIX_TIMESTAMP(b.dt_jour)) AS BIGINT) >>>>> > AND CAST(a.dt_jour AS TIMESTAMP) < CAST(min(b.dt_jour)+1 AS >>>>> TIMESTAMP) >>>>> > AND a.co_societe = '${hiveconf:in_co_societe}' >>>>> > AND ('${hiveconf:flg_reprise_entite}' = 0 OR >>>>> a.type_entite<>'MAG') >>>>> > GROUP BY >>>>> > a.type_entite, >>>>> > a.code_entite, >>>>> > a.type_rgrp_produits, >>>>> > a.co_rgrp_produits; >>>>> > >>>>> > And, when i try to launch this, i get this error : >>>>> > >>>>> > FAILED: SemanticException [Error 10128]: Line 20:62 Not yet >>>>> supported place >>>>> > for UDAF 'min' >>>>> > >>>>> > Obviously, there is a problem with min() function. >>>>> > >>>>> > How can i pass through this error? >>>>> > >>>>> > Thanks for your help >>>>> > >>>>> > >>>>> > >>>>> > CONFIDENTIALITY NOTICE >>>>> > NOTICE: This message is intended for the use of the individual or >>>>> entity to >>>>> > which it is addressed and may contain information that is >>>>> confidential, >>>>> > privileged and exempt from disclosure under applicable law. If the >>>>> reader of >>>>> > this message is not the intended recipient, you are hereby notified >>>>> that any >>>>> > printing, copying, dissemination, distribution, disclosure or >>>>> forwarding of >>>>> > this communication is strictly prohibited. If you have received this >>>>> > communication in error, please contact the sender immediately and >>>>> delete it >>>>> > from your system. Thank You. >>>>> >>>> >>>> >>> >>> >>> -- >>> *Jérôme VERDIER* >>> 06.72.19.17.31 >>> verdier.jerom...@gmail.com >>> >>> >> > > > -- > *Jérôme VERDIER* > 06.72.19.17.31 > verdier.jerom...@gmail.com > > -- *Jérôme VERDIER* 06.72.19.17.31 verdier.jerom...@gmail.com