Αναρτήσεις

Εμφάνιση αναρτήσεων με την ετικέτα SQL

Αναζήτηση μιας τιμής οπουδήποτε στη Database - SQL Server

Έστω ότι δουλεύεις πάνω σε μια analytics εφαρμογή κάνοντας reverse engineering στη βάση και ψάχνεις να βρεις σε ποιούς πίνακες βρίσκονται συγκεκριμένες τιμές... Το παρακάτω T-SQL script θα σκανάρει όλη τη βάση και θα βρει σε ποιους πίνακες υπάρχουν οι τιμές αυτές.... To παραπάνω script το βρήκα στο Stack Overflow ...

Κάνοντας ETL με το QlikView, ένα case study...

Κάθε εργαλείο φτιάχνεται με ένα συγκεκριμένο σκοπό άσχετο με το αν εμείς μπορεί να το χρησιμοποιούμε και κάπως αλλιώς για να καλύψουμε τις ανάγκες μας... Κατά την άποψή μου το QlikView δεν είναι ένα εργαλείο κατάλληλο για να φτιάξεις ETL processes, έλα όμως που πολλές φορές αναγκάζομαι για λόγους που δεν είναι της παρούσης, να το κάνω... Έχω σιχτιρίσει κάθε μια από αυτές, όντας SQL και Data Warehouse oriented, το να κάνω ETL μέσα από το script του QlikView δεν είναι το καλύτερό μου διότι πιστεύω ότι σε πολλές περιπτώσεις αναγκάζεσαι να ανακαλύψεις ξανά τον τροχό για θέματα που είναι από καιρό λυμένα για τα ETL tools και την SQL... Το συγκεκριμένο case αφορά μια περίπτωση όπου έπρεπε να εντοπίσω ανά πελάτη ποια είναι τα καταστήματα με το μεγαλύτερο μέσο υπόλοιπο και αν είναι περισσότερο από ένα να διαλέξω αυτό στο οποίο έχει ανοιχθεί πιο πρόσφατα λογαριασμός... Με παίδεψε αρκετά καθώς το πρώτο πράγμα που θα έρθει στο μυαλό μου σε αυτές τις περιπτώσεις είναι μια SQL προσέγγιση με τ

R - Πρόσβαση σε μια βάση δεδομένων με το package RODBC ...

Μπορεί δουλεύοντας με την R να χρησιμοποιούμε σε πολύ μεγάλο βαθμό ως data sources διάφορα flat files και γενικότερα αδόμητη πληροφορία αλλά θα έρθει η στιγμή εκείνη που θα χρειαστεί να κάνουμε την R να "μιλήσει" με μια ή περισσότερες βάσεις δεδομένων... Υπάρχουν διάφορα packages που παρέχουν τη διεπαφή μεταξύ της R και μιας συγκεκριμένης βάσης δεδομένων όπως το RMySQL  ή το ROracle , υπάρχει όμως ένα package το οποίο δεν database specific αλλά υποστηρίζει τη διεπαφή με όλες τις βάσεις δεδομένων, συμπεριλαμβανομένων του SQL Server και της DB2, αρκεί να υπάρχει ένα σχετικό ODBC connection... Το package αυτό ονομάζεται RODBC και μπορείτε να το βρείτε και να το εγκαταστήσετε από το CRAN ... Είναι πολύ απλό και straightforward στην χρήση του, τα βασικά functions του μπορείτε να τα δείτε κι εδώ ... Όπως θα δείτε, δίνει δυνατότητες πλήρους manipulation της βάσης (insert, update, delete) κι όχι μόνο ανάγνωση των δεδομένων... Το χρησιμοποίησα στα πλαίσια ενός project που απαιτ

QlikView variable ως παράμετρος σε SQL query...

Το σημερινό tip είναι κάτι που έφτιαξα πριν περίπου 2 χρόνια, στην αρχή της ενασχόλησής μου με το QlikView, και προέκυψε από την ανάγκη να διαβάσω μια λίστα πελατών από ένα data source και μετά να περάσω αυτή την λίστα σαν παράμετρο σε ένα άλλο data source, μια βάση δεδομένων, για να συλλέξω όλη την πληροφορία που αφορούσε τους πελάτες αυτούς... Μετά από 2 χρόνια εντατικής δουλειάς και εμπειρίας ξέρω ότι υπάρχουν κι άλλοι τρόποι, να κάνεις την ίδια δουλειά, η συγκεκριμένη υλοποίηση όμως είναι ενδιαφέρουσα ως προς την χρήση των variables μέσα στο QlikView script σε συνδυασμό με SQL queries... Έστω λοιπόν ότι το πρώτο data source είναι ένα Excel αρχείο στο οποίο περιέχονται κωδικοί πελατών τους οποίους θέλουμε να διαβάσουμε και να αναζητήσουμε σε ένα άλλο data source, μια βάση δεδομένων... Για να το καταφέρουμε αυτό θα δημιουργήσουμε μια μεταβλητή η οποία θα περιέχει σαν ένα μεγάλο string, όλους τους κωδικούς πελατών (χωρισμένους με κόμματα και κλεισμένους μέσα σε "αυτάκια&quo

Υπολογισμός ελληνικών εργάσιμων ημερών με SQL...

Πολλές φορές δουλεύοντας με δεδομένα θα χρειαστεί να τροποποιήσετε τον κώδικά σας, τον όποιο κώδικα γράφετε, αναλόγως με το αν τα δεδομένα σας αναφέρονται σε εργάσιμες ημέρες ή όχι... Αυτό μπορεί να είναι συχνά μπελάς αν συνυπολογίσεις ότι υπάρχουν κινητές γιορτές και αργίες, όπως το Πάσχα, οι οποίες διαφέρουν κιόλας αναλόγως αν αναφέρεσαι στο Πάσχα των Καθολικών ή των Ορθοδόξων... Ένας εύκολος τρόπος να υπολογιστούν οι εργάσιμες μέρες του ελληνικού εορτολογίου είναι το παρακάτω T-SQL script το οποίο αφού τρέξετε σε κάποιο SQL Server instance, παράγει για το διάστημα το οποίο έχετε ορίσει, ένα table το οποίο περιέχει ανά ημερομηνία, τον μήνα και το έτος που ανήκει αυτή, την ονομασία της ημέρας, ένδειξη αν είναι εργάσιμη ή όχι και ένδειξη αν είναι η τελευταία εργάσιμη κάθε μήνα ή όχι.... Το script αυτό μπορείτε να το χρησιμοποιείτε είτε σε stored procedures ή common table expressions για πιο ad hoc χρήση, είτε one off υπολογίζοντας τις εργάσιμες μέρες για ένα μεγάλο χρονικό διάστη

Data manipulation χρησιμοποιώντας SQL statements στην R - sqldf...

Το να μάθεις μια καινούργια γλώσσα προγραμματισμού ή ένα καινούργιο framework, σημαίνει κάποιες φορές ότι πρέπει να μάθεις να σκέφτεσαι με διαφορετικό τρόπο από αυτόν που έχεις συνηθίσει να σκέφτεσαι μέχρι τώρα... H απόφαση μου να μάθω R και να μπω στον κόσμο του statistical programming σήμαινε ότι έπρεπε να βγω από το comfort zone που βρισκόμουν τόσα χρόνια και να μάθω καινούργια κόλπα... Για εμένα και πολλούς άλλους που προερχόμαστε από ένα κόσμο γεμάτο databases και data warehouses το να γράψουμε ένα SQL script ή κάποια prodecure για να διαχειριστούμε τα δεδομένα μας είναι πολύ απλό, όταν όμως προσπαθείς να κάνεις κάτι τέτοιο μέσα από την R, τότε πρέπει να σκεφτείς και να πράξεις με διαφορετικό τρόπο... Υπάρχουν όμως στιγμές που θες να κάνεις κάτι γρήγορα και δεν έχεις χρόνο για να εκπαιδεύσεις τον εαυτό σου να σκέφτεται με R τρόπο και ίσως δεν θέλεις κιόλας να το κάνεις διότι θεωρείς ότι ο R τρόπος δεν είναι ούτε γρήγορος, ούτε αποδοτικός... Ευτυχώς υπάρχει το sqldf  που μας λύ

Μάθετε προγραμματισμό on line...

Δεν ξέρω πόσοι από τους αναγνώστες αυτού του blog θα βρουν αυτό το post ενδιαφέρον... To "Ψαροκόκαλο" δεν είναι ένα τεχνολογικό blog και οι αναγνώστες του δεν είναι (κατά κύριο λόγο φαντάζομαι) tech-oriented, νομίζω όμως ότι θα ήταν χρήσιμο για όποιον επιθυμεί να εξερευνήσει λίγο τον χώρο της Πληροφορικής και του προγραμματισμού, να βρει συγκεντρωμένες κάποιες on line, δωρεάν πηγές που εμένα με βοήθησαν να μάθω πολλά πράγματα που τα χρησιμοποίησα στη δουλειά μου κι όχι μόνο... W3Schools ( "The world's largest web development site" , είναι το logo του και ίσως να έχει δίκιο! Όλες οι τεχνολογίες που αφορούν το web development, από το front end (HTML, CSS ,Javascript, jQuery και άλλα) μέχρι το back end (ASP, PHP, XML, JSON και άλλα) και τις βάσεις δεδομένων (SQL) , υπάρχουν εδώ!) Codecademy (Ένα εξαιρετικό on line learning site το οποίο δεν θα ήταν υπερβολή να πούμε ότι έφτιαξε σχολή από παρόμοια sites... Διαθέτει ένα εξαιρετικό interface, απόλυτα φιλικό