From: | "Jamie Walker" <jamie(at)sagaxis(dot)co(dot)uk> |
---|---|
To: | <pgsql-sql(at)postgresql(dot)org> |
Subject: | Simulating LIMIT/OFFSET in a subquery |
Date: | 2001-02-12 02:13:16 |
Message-ID: | 003501c09499$bf7b2640$010a10ac@sagaxis.co.uk |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
I need to write querys that return the second and third record from a 'visits' table, for each patient. (What I need to do is look at how many patients were diagnosed on the first/second/third visit to see a physician at the outpatient clinic).
I can get at the first visit using DISTINCT ON:
SELECT DISTINCT ON (sy.episodeid) sy.episodeid, fu.opdid
FROM breast_tblfollowup fu, breast_sympt sy, outpatients opd
WHERE sy.episodeid = opd.episodeid AND fu.opdid = opd.recordno
ORDER BY sy.episodeid, dateopappt;
( breast_sympt is a view returning the subset of patients that i wish to examine, opdid is the primary key in breast_tblfollowup, which is linked one-to-one to the primary key of outpatients, called recordno )
... but I run into difficulties getting the second and third. I tried:
SELECT sy.episodeid, fu.opdid FROM breast_tblfollowup fu, breast_sympt sy
WHERE fu.opdid = (SELECT fu2.opdid FROM breast_tblfollowup fu2, outpatients opd2
WHERE fu2.opdid = opd2.recordno AND opd2.episodeid = sy.episodeid
ORDER BY opd2.dateopappt LIMIT 1 OFFSET 1);
But of course, ORDER BY and LIMIT are not allowed in sub-queries.
Does anyone know how to work around this? I thought about creating a function that returns the primary key from the nth visit for a particular patient, but I am looking for a more general solution as I have a huge list of queries that all ask for similar things on different tables, and i don't want to have to create similar functions for each query.
Thanks for your help!
--
Jamie Walker
jamie(at)sagaxis(dot)co(dot)uk
From | Date | Subject | |
---|---|---|---|
Next Message | Roberto Mello | 2001-02-12 02:40:36 | Contributing Documentation to PG |
Previous Message | Richard Huxton | 2001-02-11 08:23:31 | Re: fetching the id of a new row |