Hi Dan-
Thx for responding.   And yes, I think you're absolutely correct.  Let me update
that query - should look like:
<sql>
select
   a.k1,
   a.k2,
   a.total_amt
from Z a
where a.total_amt in
   (select b.total_amt
    from Z b
    where b.k1 = a.k1
    order by b.total_amt desc
    limit 10)
order by a.k1, a.total_amt desc
;
</sql> 

Anyone else?

Thanks,
R


-----Original Message-----
From: Dan Sashko [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, December 01, 2004 9:49 PM
To: Mysql
Subject: Re: Correlated subquery help

isn't the where subquery would always return only one record if set of
(k1,k2) is a primary key?
I dont have 4.1+ installed to test on but if you remove 'limit 10' and run it
don't you get the same list as if you ran 'select k1,k2,total_amt from Z' 
?

----- Original Message -----
From: "Rick Robinson" <[EMAIL PROTECTED]>
To: "Mysql" <[EMAIL PROTECTED]>
Sent: Wednesday, December 01, 2004 6:08 PM
Subject: Correlated subquery help


> Hi all-
> I'm using MySQL 4.1.7, trying to do a subquery that's apparently 
> unsupported -
> I'm hoping someone can provide a quick alternative for me.
>
> I have a simple table Z with 3 columns, k1, k2, and total_amt, where k1 
> and k2
> make up the primary key.  I want to create a report that lists the the top 
> 10
> total_amt for each k1, k2.  My original query was going to be of the form:
> <sql>
> select
>    a.k1,
>    a.k2,
>    a.total_amt
> from Z a
> where a.total_amt in
>    (select b.total_amt
>     from Z b
>     where b.k1 = a.k1 and
>     b.k2 = a.k2
>    order by b.total_amt desc
>    limit 10)
> order by a.k1, a.total_amt desc
> ;
> </sql>
> But I get the dreaded error: ERROR 1235: This version of MySQL doesn't yet
> support 'LIMIT & IN/ALL/ANY/SOME subquery'
>
> Is there a better way to do this query?
>
> Thanks for your help.
> Regards,
> R
> 




-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to