Ultimo luogo conosciuto in SQL
Domandina non sistemistica:
ho una tabella SQL 'pulizia' con record:
id (int), inventario (int), titolo (char[12]), dove (int), quando
(timestamp).
righe corte ma decine di migliaia.
per capirci faccio un esempio: biblioteca con libri che hanno un titolo e
un numero di inventario distribuite a scaffale aperto su più sale (dove).
per non dovere rimettere a posto il libro quanto rimesso nello scaffale
trasmette il proprio codice allo stesso e a sua volta questo lo
ritrasmette al server centrale. [NB: si tratta di tablet usati come ebook
reader, e non posso fare un poll perché potrebbero venire spenti una
volta finito l'uso, e inventario è il mac della scheda wifi, quindi posso
avere lo stesso titolo su più lettori, e un lettore con più titoli -
dove=0 significa che il titolo è stato rimosso dal lettore]
vorrei fare un:
select titolo,inventario,dove,quando from pulizia where titolo="parametro"
and dove>0 …
e poi ?
in modo che possa trovare la copia più vicina.
se avessi due database, uno con lo storico, per vedere quali libri e dove
sono stati consultati di più, per acquisire nuove copie, e uno aggiornato
a ogni movimento con l'ultimo movimento (cancellando il precedente)
sarebbe facile. ma con tutto l'archivio, per non averne due ? mi troverei
per la stessa coppia titolo-inventario diversi record, in tempi
successivi.
mi servirebbe un group by titolo,inventario ma che anziché farmi vedere
solo un record mi faccia vedere il record con il quando più alto (ossia
il record più recente).
Come è possibile ?
--
Leonardo Boselli
Università di Firenze
tel:+39 0552758808
Reply to: