* * * *
30 Visitatori, 0 Utenti

Autore Topic: Tabelle Pivot  (Letto 162 volte)

Avogadro

  • Full Member
  • ***
  • Post: 126
  • Karma: +0/-0
Tabelle Pivot
« il: Marzo 21, 2020, 04:46:24 pm »
Salve a tutti.

Allora, dovevo aggregare dei dati di excel  (nulla di che,  solo i dati di spesa di alcune sedi per dei servizi)  e vista la situazione che purtroppo c'è ingiro ,  i sistemi informativi non mi hanno potuto dare supporto.

Mai perdersi d'animo, un giro su youtube e con lo strumento "tabelle pivot" ho risolto in un attimo e in maniera egregia.

Ho fatto qualche ricerca sul web e le tabelle pivot furono un' invenzione, mi si passi il termine, dei primi fogli elettronici (mi pare lotus 1,2,3 )  alcuni decenni fa.

La maggior parte dei siti spiega come fare una tabella pivot in excel con tutti gli approfondimenti del caso corredati di esempi

Purtuttavia non ho trovato nulla su come funziona il meccanismo delle tabelle pivot, ossia che algoritmi ci stanno dietro ?  Alberi binari ? Matrici ?

Ne' ho trovato nulla di diverso dell' esempio del foglio elettronico ,  se  si volesse fare la stessa con il linguaggio sql o ancora meglio il pascal ?

Qualcuno dispone di letteratura in merito  ?

Questo delle tabelle pivot è un argomento interessante perché trasformano i dati in dei "contachilometri", mi si passi il termine, che descrivono così in maniera intuitiva come vanno i processi.

O meglio, consentono di dire al capo come vanno le cose.









« Ultima modifica: Marzo 21, 2020, 04:57:14 pm da Avogadro »

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2244
  • Karma: +10/-2
Re:Tabelle Pivot
« Risposta #1 il: Marzo 21, 2020, 05:50:35 pm »
come concetto, entro certi, limiti puoi paragonare le tabelle pivot alle "group by" dell'sql
Imagination is more important than knowledge (A.Einstein)

Avogadro

  • Full Member
  • ***
  • Post: 126
  • Karma: +0/-0
Re:Tabelle Pivot
« Risposta #2 il: Marzo 21, 2020, 09:55:01 pm »
Si, è così.

Quel che mi intriga è come ottenere quel risultato.
Un' idea potrebbe essere l' uso di alberi binari, o perlomeno io affrontavo in illo tempore questi problemi così, con la ricorsione; certo, le mie non erano statistiche complesse ma per i comuni problemi aziendali funzionavano alla grande.

Il punto è che i sw ci stanno portando verso un mondo di black box: dove immetti dei dati ed escono delle statistiche, ma cosa succede all' interno della scatola non è dato saperlo.

Si certo, anche la programmazione ad oggetti funziona così, non è importante sapere come un oggetto fa un data cosa  ma è importante sapere cosa c' è in output dato , appunto, un dato input.

E' lo stesso nelle macchine .

Il punto è che gli algoritmi hanno sempre un fascino magnetico , mentre le black box no.
 
« Ultima modifica: Marzo 21, 2020, 10:00:29 pm da Avogadro »

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2244
  • Karma: +10/-2
Re:Tabelle Pivot
« Risposta #3 il: Marzo 22, 2020, 02:57:56 am »
infatti pensare e realizzare l'algoritmo è la cosa più divertente della programmazione

per generare una pivot la vedrei come una elaborazione della tabella A per ottenere la tabella B
la tabella B ha
  • una primary key composta da tutti i campi di raggruppamento
  • una serie di campi di aggregazione ognuno dei quali risponde ad una certa funziona (sum, min, max, ecc...)

quindi scansionando la tabella A bisogna estrarre i campi per comporre la chiave primaria della tabella B
se il record in B non esiste allora lo si crea
si aggiornano i campi di aggregazione ognuno calcolando la rispettiva funzione

può essere un buon punto di partenza


nomorelogic
Imagination is more important than knowledge (A.Einstein)

Avogadro

  • Full Member
  • ***
  • Post: 126
  • Karma: +0/-0
Re:Tabelle Pivot
« Risposta #4 il: Marzo 22, 2020, 06:57:33 pm »
Concordo , pensare e implementare un algoritmo  è la parte intrigante dell' informatica, tant'è che le basi dell' informatica sono appunto algoritmi, strutture (e  la massima "essere astratti per poi poter essere concreti") .

 Mio personale opinione è che le basi le ha gettate Cartesio con il suo discorso sul metodo (che in sostanza è un' operazione di normalizzazione dei dati su cui lavorare ) .

Ma torniamo alle tabelle pivot: quella che ha descritto è un approccio basato su matrici, che ia ben chiaro va piu' che bene (basta che siano rispettate le regole di normalizzazione dei dati).

Il problema è che la cultura "sql" è scarsa in giro (ho un collega bravissimo in banche dati ed sql e ... e in azienda gli fanno fare tutt' altro, sempre per la storia della meritocrazia nel belpaese ma sorvoliamo) .

Succede puntualmente che ci si ritrova con una big tabella excel di dati e il capo che vuole sapere le statistiche .

Con le reminiscenze ho sempre affrontato questa situazione con gli alberi binari e la ricorsione, che superano in efficienza l' approccio matriciale.

In questi tristi giorni ceh dobbiamo stare in casa provero' a cimentarmi con entrambe gli approcci , giusto per non far arrugginire la passione per algoritmi e strutture dati, per questo avevo chiesto se qualcuno aveva qualche link sull' argomento .

Sinceramente vedere n video o siti che dicono tutti la stessa cosa, ossia come  dire al foglio elettronico di fare la tabella pivot mi deprime un attimo,; si la semplicità d'uso e quant'altro ma così si fomenta vedere e cose d'informatica come delle mere black box.





 

 

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2244
  • Karma: +10/-2
Re:Tabelle Pivot
« Risposta #5 il: Marzo 23, 2020, 09:42:44 am »
albero nel senso che i figli di ogni nodo costituiscono il suo dettaglio?

Imagination is more important than knowledge (A.Einstein)

Avogadro

  • Full Member
  • ***
  • Post: 126
  • Karma: +0/-0
Re:Tabelle Pivot
« Risposta #6 il: Marzo 23, 2020, 09:12:49 pm »
Ho usato il classico alberi binario, come quello di questo esempio qui :

http://www.francescofiora.it/albero_binario_pascal.php

Semplice, efficace, almeno per le cose che dovevo fare io .

E' che non ho conservato il codice  e mi tocca reimplementare tutto; all' epoca sul web si trovano ottime dispense e ottimi siti, ora pare sia passata una specie di apocalisse, si trova solo pubblicità.
« Ultima modifica: Marzo 23, 2020, 09:16:51 pm da Avogadro »

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2244
  • Karma: +10/-2
Re:Tabelle Pivot
« Risposta #7 il: Marzo 24, 2020, 01:25:18 am »
in free pascal c'è già un'ottima implementazione degli alberi
https://wiki.freepascal.org/AVL_Tree

dagli un'occhiata poiché secondo me osno già pronti all'uso per quello che devi fare ;)
Imagination is more important than knowledge (A.Einstein)

Avogadro

  • Full Member
  • ***
  • Post: 126
  • Karma: +0/-0
Re:Tabelle Pivot
« Risposta #8 il: Marzo 25, 2020, 07:20:28 pm »
 :)

grazie

Ciao

 

Recenti

How To

Trascinare un file nel programma da xinyiman
DB concetti fondamentali e ZeosLib da xinyiman
Recuperare codice HTML da pagina web da xinyiman
Mandare mail con Lazarus da xinyiman
Stabilire il sistema operativo da xinyiman
Esempio lista in pascal da xinyiman
File INI da xinyiman
Codice di attivazione da xinyiman
Realizzare programmi multilingua da xinyiman
Lavorare con le directory da xinyiman
Utilizzare Unità esterne da Loryea
TTreeView da xinyiman
TTreeview e Menu da xinyiman
Generare controlli RUN-TIME da xinyiman
LazReport, PDF ed immagini da xinyiman
Intercettare tasti premuti da xinyiman
Ampliare Lazarus da xinyiman
Lazarus e la crittografia da xinyiman
System Tray con Lazarus da xinyiman
UIB: Unified Interbase da Microges2000
Il file: questo sconosciuto da Microges2000
Conferma di chiusura di un applicazione da xinyiman
Liste e puntatori da Microges2000
Overload di funzioni da Microges2000
Funzioni a parametri variabili da Microges2000
Proprietà da Microges2000
Conversione numerica da Microges2000
TImage su Form e Panel da Maverich
Indy gestiore server FTP lato Client da Maverich
PopUpMenu sotto Pulsante (TSpeedButton) da Maverich
Direttiva $macro da Microges2000
Toolbar da xinyiman
Evidenziare voci TreeView da Maverich
Visualizzare un file Html esterno da Maverich
StatusBar - aggirare l'errore variabile duplicata da Maverich
Da DataSource a Excel da xinyiman
Le permutazioni da xinyiman
Brute force da xinyiman
Indy 10 - Invio email con allegati da Maverich
La gestione degli errori in Lazarus da xinyiman
Pascal Script da xinyiman
Linux + Zeos + Firebird da xinyiman
Dataset virtuale da xinyiman
Overload di operatori da Microges2000
Lavorare con file in formato JSON con Lazarus da nomorelogic
Zeos ... dietro le quinte (prima parte) da Stilgar
Disporre le finestre in un blocco unico (come Delphi) da Maverich
Aspetto retrò (Cmd Line) da xinyiman
Come interfacciare periferica twain da Narciso
Ubuntu - aggiornare free pascal e lazarus da xinyiman
fpcup: installazioni parallele di lazarus e fpc da nomorelogic
Free Pascal e Lazarus sul Raspberry Pi da nomorelogic
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal. da nomorelogic
Creare un server multithread da xinyiman
guida all'installazione di fpc trunk da subversion in linux gentoo da nomorelogic
Indice da nomorelogic
DB concetti fondamentali e connessioni standard da xinyiman
Advanced Record Syntax da nomorelogic
DB concetti fondamentali e DBGrid da xinyiman
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText da xinyiman
Advanced Record Syntax: un esempio pratico da nomorelogic
Superclasse form base per programmi gestionali (e non) da nomorelogic
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox da nomorelogic
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form da nomorelogic
Superclasse form base per programmi gestionali (e non) #4 - wait animation da nomorelogic
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog da nomorelogic
Installare lazarus su mac osx sierra da xinyiman
immagine docker per lavorare con lazarus e free pascal da nomorelogic
TDD o Test-Driven Development da xinyiman
Utenti
Stats
  • Post in totale: 13320
  • Topic in totale: 1669
  • Online Today: 51
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 30
Total: 30

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.