You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hive.apache.org by yo...@wipro.com on 2012/08/10 08:53:17 UTC

Group by clause gives error

Hi all,

I have a dummy table having values


date       name      type
------------------------------
01           x            a
01           y            a
01           z            b
02           u            c
02           x            d
03            t            a


I want to operate operation that

count the name and type on the same date and order by date.

I wrote this query

select date,  count(*), name from demotable group by date;

its throws error:

Error in semantic analysis:  Expression not in GROUP BY key 'name'  (Although this query works in Mysql )


Please suggest

Thanks & Regards
Yogesh Kumar






Please do not print this email unless it is absolutely necessary. 

The information contained in this electronic message and any attachments to this message are intended for the exclusive use of the addressee(s) and may contain proprietary, confidential or privileged information. If you are not the intended recipient, you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately and destroy all copies of this message and any attachments. 

WARNING: Computer viruses can be transmitted via email. The recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. 

www.wipro.com

Re: Group by clause gives error

Posted by MiaoMiao <li...@gmail.com>.
You need to apply an aggregate function to NAME since it's not used as
a GROUP BY key.

Without an aggregate function, your query will be confusing. I mean, what does
`select name from sometable group by date;`
mean anyway?

Try

select date,  count(type), count(name) from demotable group by date;


On Fri, Aug 10, 2012 at 2:53 PM,  <yo...@wipro.com> wrote:
> Hi all,
>
> I have a dummy table having values
>
>
> date       name      type
> ------------------------------
> 01           x            a
> 01           y            a
> 01           z            b
> 02           u            c
> 02           x            d
> 03            t            a
>
>
> I want to operate operation that
>
> count the name and type on the same date and order by date.
>
> I wrote this query
>
> select date,  count(*), name from demotable group by date;
>
> its throws error:
>
> Error in semantic analysis:  Expression not in GROUP BY key 'name'
> (Although this query works in Mysql )
>
>
> Please suggest
>
> Thanks & Regards
> Yogesh Kumar
>
>
>
>
>
> Please do not print this email unless it is absolutely necessary.
>
> The information contained in this electronic message and any attachments to
> this message are intended for the exclusive use of the addressee(s) and may
> contain proprietary, confidential or privileged information. If you are not
> the intended recipient, you should not disseminate, distribute or copy this
> e-mail. Please notify the sender immediately and destroy all copies of this
> message and any attachments.
>
> WARNING: Computer viruses can be transmitted via email. The recipient should
> check this email and any attachments for the presence of viruses. The
> company accepts no liability for any damage caused by any virus transmitted
> by this email.
>
> www.wipro.com