Ik zit met een probleempje bij het opstellen van een query. Ik heb een (grote) tabel met een id-kolom (oplopende integer), een product_type-kolom (varchar(20) die meermaals voorkomt in de kolom) en een berg kolommen met data die nu niet terzake doen.
Ik zou nu graag de laatste 20 producten uit de tabel zien, gesorteerd van nieuw naar oud (hoger id is nieuwer product). Simpel denk je (dat is het waarschijnlijk ook, maar ik zie het niet
)?
Ik heb al zitten experimeteren met COUNT en subqueries, maar of het is niet mogelijk (twijfelachtig) of ik zie het gewoonweg niet. Iemand die me hierbij wat hulp kan geven?
Ik zou nu graag de laatste 20 producten uit de tabel zien, gesorteerd van nieuw naar oud (hoger id is nieuwer product). Simpel denk je (dat is het waarschijnlijk ook, maar ik zie het niet
code:
Dat geeft de laatste 20 rijen uit de tabel, maar dat heb ik niet nodig. Ik wil de laatste 20 producten: er kunnen dus tal van dubbelen tussenzitten. Ik zou dus hetvolgende willen doen:1
| SELECT product_type, id FROM mytable ORDER BY id DESC LIMIT 20 |
code:
maar dat is voor PostgreSQL geen geldige syntax. De id waarop we sorteren moet eveens in de SELECT staan. Dus:1
| SELECT DISTINCT product_type FROM mytable ORDER BY id DESC LIMIT 20 |
code:
Maar nu werkt de DISTINCT niet meer omdat alle rijen uniek zijn door de id...1
| SELECT DISTINCT product_type, id FROM mytable ORDER BY id DESC LIMIT 20 |
Ik heb al zitten experimeteren met COUNT en subqueries, maar of het is niet mogelijk (twijfelachtig) of ik zie het gewoonweg niet. Iemand die me hierbij wat hulp kan geven?