Thread: How to write a sql query to get this result?

How to write a sql query to get this result?

From
"Daniel"
Date:
Hello,

Is there any way how to retrieve result normally displayed as:

TOTAL             268
Administrator     7
Internet Only      178
Filtered Internet  7

To be like this:

TOTAL Administrator Internet Only Filtered Internet
268        7                   178               7

That means, the rows of the first column of the first case are headers in 
the second case. Similarly, the rows of the second column are displayed as 
one row.

Please reply to daniel_katka@hotmail.com

Thank you very much.

Daniel



Re: How to write a sql query to get this result?

From
Tomasz Myrta
Date:
Dnia 2003-05-01 05:31, Uz.ytkownik Daniel napisa?:
> Hello,
>
> Is there any way how to retrieve result normally displayed as:
>
> TOTAL             268
> Administrator     7
> Internet Only      178
> Filtered Internet  7
>
> To be like this:
>
> TOTAL Administrator Internet Only Filtered Internet
> 268        7                   178               7
>
> That means, the rows of the first column of the first case are headers in
> the second case. Similarly, the rows of the second column are displayed as
> one row.
>
> Please reply to daniel_katka@hotmail.com
Find samething about contrib/tablefunc
This problem is well known as cross tab (pivot table).

Regards,
Tomasz Myrta



Re: How to write a sql query to get this result?

From
Bruno Wolff III
Date:
On Wed, Apr 30, 2003 at 21:31:20 -0600, Daniel <postgresql@dunajsky.com> wrote:
> Hello,
> 
> Is there any way how to retrieve result normally displayed as:
> 
> TOTAL             268
> Administrator     7
> Internet Only      178
> Filtered Internet  7
> 
> To be like this:
> 
> TOTAL Administrator Internet Only Filtered Internet
> 268        7                   178               7
> 
> That means, the rows of the first column of the first case are headers in 
> the second case. Similarly, the rows of the second column are displayed as 
> one row.

For a fixed set of rows, you can combine the queries together into
one query. If the number of rows is data dependent, then you will
want to look at the crosstab contribution as suggested in another
response.

You can do something like:

select (select total_query) as "TOTAL", (select administrator_query) as "Administrator", (select internet_query) as
"InternetOnly", (select filtered_query) as "Filtered Internet";
 
> 
> Please reply to daniel_katka@hotmail.com

Please use a reply-to header to redirect replies. (Or change your from
address.)

> 
> Thank you very much.
> 
> Daniel
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)