iXdi - Σύγχρονος προγραμματισμός

Χρησιμοποιείτε το NTILE με λιγότερες από 100 εγγραφές;

Χρησιμοποιώ NTILE(100) για να υπολογίσω την τιμή του 95ου εκατοστημόριου στη στήλη μου. Σε ορισμένες περιπτώσεις όπου ο αριθμός των εγγραφών είναι μικρότερος από 100, το NTILE(100) επιστρέφει ένα NULL όταν υποβάλλεται ερώτημα για τις τιμές στο 95ο τεταρτημόριο επειδή δεν υπάρχουν αρκετές τιμές. Αυτή τη στιγμή το κάνω με τον εξής τρόπο:

CREATE TABLE #Temp(val int)
GO

INSERT INTO #Temp(val) VALUES(1);
INSERT INTO #Temp(val) VALUES(2);
INSERT INTO #Temp(val) VALUES(3);
INSERT INTO #Temp(val) VALUES(4);
INSERT INTO #Temp(val) VALUES(5);
INSERT INTO #Temp(val) VALUES(6);

SELECT val, Quantile
FROM
(
    SELECT val, NTILE(100) OVER (ORDER BY val) AS Quantile
    FROM
    #Temp
) A
WHERE Quantile=95

GO

DROP TABLE #Temp

Αναρωτιόμουν ποιο είναι το αποδεκτό πρότυπο για το χειρισμό μιας υπόθεσης με λιγότερες από 100 τιμές στη στήλη. Οποιεσδήποτε προτάσεις?


  • Γιατί ψηφίστηκε να μετεγκατασταθεί στο Superuser; 25.07.2011
  • Μπορείτε να δείξετε κάποιον κώδικα πώς χρησιμοποιείτε το NTILE. Πραγματικά δεν καταλαβαίνω πώς το NTILE μπορεί να επιστρέψει null. 25.07.2011
  • @Mikael Eriksson: Συγγνώμη που είμαι τόσο ασαφής. Διευκρίνισα και πρόσθεσα επιπλέον λεπτομέρειες στην ερώτησή μου σχετικά με το πότε λαμβάνω NULL. Δεν αφορούσε τόσο το ότι ο NTILE μου επέστρεφε ένα NULL, αλλά μάλλον ήταν ο τρόπος που το ρωτούσα. 25.07.2011
  • Έχεις μπερδέψει λίγο την ορολογία σου. Εξ ορισμού, τα τεταρτημόρια διαιρούν ένα σύνολο εγγραφών σε 4 - ψάχνετε για το 95ο εκατοστημόριο. 26.07.2011
  • Τι αποτέλεσμα θα περιμένατε στο παράδειγμα που παρείχατε; 26.07.2011
  • @Ed Harper: Συγγνώμη! Αυτό ήταν τυπογραφικό λάθος. Εννοούσα ένα ποσό. Σχετικά με το αποτέλεσμα, λοιπόν, το R μου δίνει τιμή 5,75. 26.07.2011

Απαντήσεις:


1

Έψαχνα για μια λύση σε αυτό για ένα έργο πελάτη που βρισκόταν ακόμα στον SQL Server 2005. Εφόσον το NTILE απλώς χωρίζει τις διαθέσιμες σειρές σε ομάδες, δεν θα λάβετε ποτέ υψηλότερη από 6 με 6 σειρές. Εάν θέλετε να τα απλώσετε ώστε να μοιάζουν με εκατοστημόρια (π.χ.: 16, 33, 50, 66, 83, 100), μπορείτε να κάνετε τα εξής. Σημειώστε ότι δεν θα χτυπήσετε απαραίτητα το 95 ακριβώς, επομένως πρέπει να κάνετε ερώτημα για την πλησιέστερη τιμή:

SELECT TOP 1 val, Quantile
FROM
(
    SELECT val, CAST (ROW_NUMBER() OVER (ORDER BY val) * 100.0 / COUNT(*) OVER() AS INT) AS Quantile
    FROM #Temp
) A
WHERE Quantile >= 95 
ORDER BY Quantile
05.01.2015
Νέα υλικά

Transforming Marketing Insights: Google Analytics 4 Leveraging AI Power
TL;DR: - Το Google Analytics 4 (GA4) ενσωματώνει απρόσκοπτα την τεχνητή νοημοσύνη για να βελτιώσει τα δεδομένα μάρκετινγκ. - Αυτοματοποιημένα insights, βασισμένα στη μηχανική μάθηση,..

Απόσπασμα Javascript για λήψη ενός Google-Spreadsheet πολλών φύλλων σε JSON
Θα θέλατε να κάνετε λήψη του υπολογιστικού φύλλου πολλών φύλλων Google σε μια απλή μορφή όπως αυτή; Ακολουθήστε αυτά τα βήματα: Δημοσιεύστε πρώτα το υπολογιστικό φύλλο σας Google...

Έργο Fullstack Generator URL με React18, ASP.NET Core WebAPI (.NET 7) και TypeScript
Αυτό το άρθρο πρόκειται να παρουσιάσει το πρόσφατο βίντεο μου στο YouTube: Εισαγωγή Σε αυτό το βίντεο, θα δημιουργήσουμε ένα έργο Fullstack URL Generator χρησιμοποιώντας React18,..

Ο πιγκουίνος μαγεύει
Ουάου! Τι καταπληκτικό τριήμερο ήταν αυτό. Τι ευλογία που ήταν, δεν θα ήταν κανείς πιο ευγνώμων από το να είσαι μέλος του πιγκουίνου της ομάδας μας. Εδώ είναι το συναρπαστικό μέρος :Καταρχήν μας..

Super Easy Prettier + Eslint + Ενσωμάτωση VSCode
Super Easy Prettier + Eslint + Ενσωμάτωση VSCode Prettier + Eslint + Vscode + React όλα σε ένα πακέτο 📦 Εγκατάσταση όλων των εξαρτήσεων $ yarn add --dev eslint eslint-config-airbnb..

Πώς να προσεγγίσετε την εξαγωγή δομημένων δεδομένων από εικόνες
Έχω κάνει πολλή επεξεργασία εικόνας τον τελευταίο καιρό, με στόχο την εξαγωγή των δομημένων δεδομένων που είναι ορατά μέσα σε μια εικόνα. Ενώ έχω ακόμα φρέσκο ​​μυαλό για αρχάριους και πολλά..

The Perpetual Student: Γιατί ένας Μηχανικός Λογισμικού μαθαίνει πάντα
Στον ταχέως εξελισσόμενο κόσμο της τεχνολογίας, οι μηχανικοί λογισμικού μαθαίνουν συνεχώς. Ο τομέας της ανάπτυξης λογισμικού είναι δυναμικός, με τα εργαλεία, τις γλώσσες, τα πλαίσια και τις..