Posts

Showing posts from September, 2016

PostgreSQL: come visualizzare i primi N record di ogni gruppo

Image
Di recente mi è capitato di dover produrre un report dove si volevano, per ogni venditore inserito nei database aziendali, le prime 5 categorie merceologiche in cui vende più offerte. Il problema di scrivere una query per selezionare i primi N elementi di un gruppo non è banale. Semplificando al massimo il caso reale, si può vedere come se in gioco ci fosse un'unica tabella offers , dove ogni record è composto da: id venditore ( seller ) categoria dell'offerta ( category ) La richiesta non è facilmente esprimibile con una query ma, ho scoperto che da PostgreSQL 9.1 viene offerta una sintassi molto naif per realizzarla.  Bisogna combinare due window function , ovvero due funzioni che permettono di fare calcoli su insiemi di righe: row_number() : fornisce il numero di riga in un certo insieme, partendo da 1 select over partition : permette di selezionare qualcosa in una partizione di dati La query che risponde all'esigenza di avere le prime 5 categorie

Guida: preparare un ambiente di sviluppo Ruby On Rails su Windows 10 tramite Docker

Image
Viste le non poche difficoltà che ho avuto nel preparare un ambiente di sviluppo per una applicazione scritta con Ruby On Rails da una macchina Windows 10 sfruttando Docker , ho deciso di preparare questa guida sperando di far risparmiare un po' di tempo a qualche interessato ;) L'idea è quella di sviluppare l'applicazione scrivendo il codice direttamente sul filesystem della macchina Windows 10 . Volevo però avere avere l 'application server in containe r in modo da poter sfruttare tutte le potenzialità di Ruby e sopratutto di Rails. Inoltre volevo che l'applicazione si appoggiasse su un database MySql anch'esso in un container Docker. Come prima cosa bisogna installare Docker per Windows, il software è reperibile nel sito ufficiale di Docker, in particolare bisogna installare " Docker for Windows versione Stable ". Una volta scaricato bisognerà installarlo, al termine dell'installazione verrà proposto questo messaggio: Hyper-V feature