sql >> Databáze >  >> RDS >> PostgreSQL

SQLAlchemy SELECT WITH klauzulí/příkazem (pgsql)

Tento kus kódu od autora SQLAlchemy v tomto e-mailovém vláknu může pomoci

q1 = s.query(distinct(Appl.refid), Appl).\ 
        filter(Appl.lastname.ilike('Williamson%')).\ 
        filter(Appl.firstname.ilike('d%')).\ 
        group_by(Appl).\ 
        order_by(Appl.refid, Appl.appldate.desc()) 

q1 = q1.cte('distinct_query') 
q2 = s.query(q1).order_by(q1.c.lastname, q1.c.firstname) 
q2.all() 

výstupy jako:

WITH distinct_query AS 
(SELECT DISTINCT appl.refid AS anon_1, appl.id AS id, appl.firstname AS     firstname, appl.lastname AS lastname, appl.refid AS refid, appl.appldate AS appldate 
FROM appl 
WHERE appl.lastname ILIKE %(lastname_1)s AND appl.firstname ILIKE %(firstname_1)s GROUP BY appl.id, appl.firstname, appl.lastname, appl.refid, appl.appldate ORDER BY appl.refid, appl.appldate DESC) 
 SELECT distinct_query.anon_1 AS distinct_query_anon_1, distinct_query.id AS distinct_query_id, distinct_query.firstname AS distinct_query_firstname, distinct_query.lastname AS distinct_query_lastname, distinct_query.refid AS distinct_query_refid, distinct_query.appldate AS distinct_query_appldate 
FROM distinct_query ORDER BY distinct_query.lastname, distinct_query.firstname 



  1. 'OPTION SQL_SELECT_LIMIT=DEFAULT'

  2. Spustit uloženou proceduru v SQL Developer?

  3. Přejmenování tabulky v SQL Server (T-SQL)

  4. mysql seřaďte podle názvu asc ingore vedoucí 'the'