Thread: SELECT column WHERE time_type = 'Break' but only the rows that are after(below) time_type = 'Start'

))Hi all, currently Im stuck in an issue, hope some good PostgreSQL fellow
programmer could give me a hand with it. This is my table...

<http://postgresql.nabble.com/file/n5855467/screenshot.jpg>

I would like to SELECT all 'time_elapse' WHERE time_type = 'Break' but only
the rows that are after(below) the last(descendent) time_type = 'Start' and
sum them up.

So in the table above I would SELECT...

*    time_elapse                  | time_type  |  time_index
    ----------------------------+-------------+-------------
    00-00-00 01:00:00.00  |  Break       |  2.1
    00-00-00 01:00:00.00  |  Break       |  2.2*

So totalbreak = 00-00-00 02:00:00.000

I know how to convert character varying to timestamp in order to sum them
up, But I don't know how would be the syntax to select all possible 'Breaks'
and sum them up (lets say the max Breaks between each 'Start' is nine).

I can hardly imagine a way to do that, so I would like to ask for
suggestions.

Thanks Advanced.



--
View this message in context:
http://postgresql.nabble.com/SELECT-column-WHERE-time-type-Break-but-only-the-rows-that-are-after-below-time-type-Start-tp5855467.html
Sent from the PostgreSQL - admin mailing list archive at Nabble.com.


One way would be to use a SELECT in a WHERE clause:

SELECT SUM(<column_that_you_want_to_sum>) FROM <your_table> WHERE (SELECT <column_that_you_want_to_select_on>  > MAX(<field_that_you_want_to_compare_against>);

Something along those lines should work.

Cheers,

Cliff

On Sun, Jun 28, 2015 at 5:43 AM, litu16 <litumelendez@gmail.com> wrote:
))Hi all, currently Im stuck in an issue, hope some good PostgreSQL fellow
programmer could give me a hand with it. This is my table...

<http://postgresql.nabble.com/file/n5855467/screenshot.jpg>

I would like to SELECT all 'time_elapse' WHERE time_type = 'Break' but only
the rows that are after(below) the last(descendent) time_type = 'Start' and
sum them up.

So in the table above I would SELECT...

*    time_elapse                  | time_type  |  time_index
    ----------------------------+-------------+-------------
    00-00-00 01:00:00.00  |  Break       |  2.1
    00-00-00 01:00:00.00  |  Break       |  2.2*

So totalbreak = 00-00-00 02:00:00.000

I know how to convert character varying to timestamp in order to sum them
up, But I don't know how would be the syntax to select all possible 'Breaks'
and sum them up (lets say the max Breaks between each 'Start' is nine).

I can hardly imagine a way to do that, so I would like to ask for
suggestions.

Thanks Advanced.



--
View this message in context: http://postgresql.nabble.com/SELECT-column-WHERE-time-type-Break-but-only-the-rows-that-are-after-below-time-type-Start-tp5855467.html
Sent from the PostgreSQL - admin mailing list archive at Nabble.com.


--
Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin