Suche das neuste Datum in einer Spalte und der jeweiligen Rubriken

Dany.p

Benutzer
Beiträge
7
Hallo Leute
Ich versuche in einer Datenbank aus einer Spalte die der neuste Eintrag jeder Rubrik zu filtern.
Irgendwo habe ich einen Knopf.
Ich habe versucht:
SELECT MAX(datum), rubrik, dateiname FROM `fotografie` WHERE rubrik = 'pflanzen'

In der Spalte sind natürlich noch andere Bildarten wie Makro, Landschaft etc. das Ziel ist es von jeder sparte nur das neuste Bild anzuzeigen.

sorry ich arbeite noch nicht lange mit Mysql bitte um Hilfe.
Danke im Voraus
DP
 
Zuletzt bearbeitet:
Werbung:
im übrigen: eine gute Datenbank hätte Deinen Versuch als syntaktisch falsch markiert, so wie hier:

Code:
test=*# create table demo (a int, b int, c int);
CREATE TABLE
test=*# select max(a), b, c from demo;
FEHLER:  Spalte »demo.b« muss in der GROUP-BY-Klausel erscheinen oder in einer Aggregatfunktion verwendet werden
LINE 1: select max(a), b, c from demo;
                       ^
test=*#

MySQL erkennt den Fehler nicht und liefert eine falsche Antwort. Oder anders formuliert: für Anfänger ist MySQL ungeeigne, und für alle anderen auch.
 
Sie meinen so
SELECT MAX(datum), rubrik, dateiname FROM `fotografie` GROUP BY rubrik = 'pflanzen'

Nein.

Code:
test=*# select max(a), b, c from demo group by b,c;
 max | b | c
-----+---+---
(0 rows)

test=*#


Das ist die Syntax zu SELECT:

Code:
test=*# \h select
Command:     SELECT
Description: retrieve rows from a table or view
Syntax:
[ WITH [ RECURSIVE ] with_query [, ...] ]
SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
    [ * | expression [ [ AS ] output_name ] [, ...] ]
    [ FROM from_item [, ...] ]
    [ WHERE condition ]
    [ GROUP BY grouping_element [, ...] ]
    [ HAVING condition [, ...] ]
    [ WINDOW window_name AS ( window_definition ) [, ...] ]
    [ { UNION | INTERSECT | EXCEPT } [ ALL | DISTINCT ] select ]
    [ ORDER BY expression [ ASC | DESC | USING operator ] [ NULLS { FIRST | LAST } ] [, ...] ]
    [ LIMIT { count | ALL } ]
    [ OFFSET start [ ROW | ROWS ] ]
    [ FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } { ONLY | WITH TIES } ]
    [ FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE } [ OF table_name [, ...] ] [ NOWAIT | SKIP LOCKED ] [...] ]

where from_item can be one of:

    [ ONLY ] table_name [ * ] [ [ AS ] alias [ ( column_alias [, ...] ) ] ]
                [ TABLESAMPLE sampling_method ( argument [, ...] ) [ REPEATABLE ( seed ) ] ]
    [ LATERAL ] ( select ) [ AS ] alias [ ( column_alias [, ...] ) ]
    with_query_name [ [ AS ] alias [ ( column_alias [, ...] ) ] ]
    [ LATERAL ] function_name ( [ argument [, ...] ] )
                [ WITH ORDINALITY ] [ [ AS ] alias [ ( column_alias [, ...] ) ] ]
    [ LATERAL ] function_name ( [ argument [, ...] ] ) [ AS ] alias ( column_definition [, ...] )
    [ LATERAL ] function_name ( [ argument [, ...] ] ) AS ( column_definition [, ...] )
    [ LATERAL ] ROWS FROM( function_name ( [ argument [, ...] ] ) [ AS ( column_definition [, ...] ) ] [, ...] )
                [ WITH ORDINALITY ] [ [ AS ] alias [ ( column_alias [, ...] ) ] ]
    from_item [ NATURAL ] join_type from_item [ ON join_condition | USING ( join_column [, ...] ) ]

and grouping_element can be one of:

    ( )
    expression
    ( expression [, ...] )
    ROLLUP ( { expression | ( expression [, ...] ) } [, ...] )
    CUBE ( { expression | ( expression [, ...] ) } [, ...] )
    GROUPING SETS ( grouping_element [, ...] )

and with_query is:

    with_query_name [ ( column_name [, ...] ) ] AS [ [ NOT ] MATERIALIZED ] ( select | values | insert | update | delete )

TABLE [ ONLY ] table_name [ * ]

URL: https://www.postgresql.org/docs/13/sql-select.html
 
Werbung:
Zurück
Oben