Sorry, Lance
By mistake I posted my own things, which I was using to "adapt" to your 
situation. :-)
Please kindly ignore everything below my signature :p

Best,
Oliveiros
  ----- Original Message ----- 
  From: Oliveiros Cristina 
  To: Campbell, Lance ; pgsql-sql@postgresql.org 
  Sent: Thursday, October 09, 2008 5:48 PM
  Subject: Re: [SQL] sequence number in a result 


  Howdy, Lance.

  I had that problem about a year ago, and AFAIK there is no solution, at least 
not in SQL Standard.

  What I did was something like

  SELECT a,b,c,count(y.a) as order
  FROM t1 x , t1 y
  WHERE  ((x.a >  y.a)
  OR (x.a = y.a 
  AND x.ID <= y.ID))   -- Use here whatever you have as primary key on your 
table...
  GROUP BY x.a,x.b,x.c ;
  ORDER BY a ;

  But this trick is just for relatively small tables.
  When I needed something for bigger tables, I did it programmatically

  But, maybe PostGreSQL has some proprietary function which I dunno that can do 
precisely this...

  HTH a little...

  Best,
  Oliveiros 
  "(SELECT 
resumo1.\"iPages\",resumo1.\"iUniqueVisitors\",resumo1.\"IDSite\",resumo1.\"IDWeboramaAccount\",resumo1.\"Visits\",
 " +

  "COUNT(resumo2.\"iPages\") as rank " +

  "FROM " + m_strSUBQUERY_INTERFACE + " resumo1," +

  " " + m_strSUBQUERY_INTERFACE + " resumo2 " +

  "WHERE ((resumo1.\"dtDate\" = @diadehoje) " +

  "AND (resumo2.\"dtDate\" = @diadehoje)) " +

  "AND ((resumo1.\"iPages\" < resumo2.\"iPages\" ) " +

  "OR (resumo1.\"iPages\" = resumo2.\"iPages\" " +

  "AND resumo1.\"IDSiteResume\" <= resumo2.\"IDSiteResume\")) " + // Tinha e 
tem IDSiteResume 

  "GROUP BY resumo1.\"iPages\",resumo1.\"iUniqueVisitors\"," +

  
"resumo1.\"IDSite\",resumo1.\"dtDate\",resumo1.\"IDSiteResume\",resumo1.\"IDWeboramaAccount\",resumo1.\"Visits\"
 


    ----- Original Message ----- 
    From: Campbell, Lance 
    To: pgsql-sql@postgresql.org 
    Sent: Thursday, October 09, 2008 5:31 PM
    Subject: [SQL] sequence number in a result 


    Say I have the following SQL statement:

     

    SELECT a, b, c FROM t1 ORDER BY a;

     

    Is there a function or special system label I can use that would generate a 
sequence number in the returning result set?

     

    Example:

    SELECT a, b, c, SOMELABEL as order FROM t1 ORDER BY a;

     

    Result:

    a    b     c   order

    ---------------------

    Aa  bb  cc  1

    A1  bb  cc  2

    A2  bb  cc  3

     

    Thanks,

     

    Lance Campbell

    Project Manager/Software Architect

    Web Services at Public Affairs

    University of Illinois

    217.333.0382

    http://webservices.uiuc.edu

     

Reply via email to