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
>
>

Reply via email to