* * * *

Privacy Policy

Blog italiano

Clicca qui se vuoi andare al blog italiano su Lazarus e il pascal.

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

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

Inserisci il nome utente, la password e la durata della sessione.

277 Visitatori, 0 Utenti

Autore Topic: Tabelle Pivot  (Letto 1955 volte)

Avogadro

  • Full Member
  • ***
  • Post: 217
  • 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: 2870
  • Karma: +20/-4
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: 217
  • 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: 2870
  • Karma: +20/-4
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: 217
  • 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: 2870
  • Karma: +20/-4
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: 217
  • 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: 2870
  • Karma: +20/-4
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: 217
  • Karma: +0/-0
Re:Tabelle Pivot
« Risposta #8 il: Marzo 25, 2020, 07:20:28 pm »
 :)

grazie

Ciao

 

Recenti

How To

Utenti
  • Utenti in totale: 785
  • Latest: gmax
Stats
  • Post in totale: 18769
  • Topic in totale: 2232
  • Online Today: 303
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 277
Total: 277

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.