2017-06-14 2 views
0

So bin ich sehr neu zu SQL, ich die Grundlagen kennen, aber dieses ist ein hartes ich :)Der Versuch, unterschiedliche Zeilen als Prozentsatz für mehrere Spalten in SQL Server zu finden

erraten habe ich einen Auftrag, wo ich müssen die einzelnen Zeilen in jeder Spalte als% finden (die Abfrage sollte in der Lage sein, die% der Zeilen in dieser bestimmten Spalte zu bestimmen, die unterschiedlich sind), und dies muss für mehrere Spalten erfolgen. Ich muss mehr tun, aber ich werde das sparen, sobald ich das herausgefunden habe.

Kann mir bitte jemand helfen. Ein Startpunkt wäre schön.

Schätzen Sie die Hilfe !!

+0

ergeben würde Ist das MySQL oder SQL Server? Es kann nicht beides sein. –

+0

Ein Ausgangspunkt wäre die Verwendung von Aggregaten. Dinge wie COUNT und ein paar grundlegende Mathematik sollten dich in Gang bringen. –

+0

Schauen Sie sich [this] an (https://stackoverflow.com/questions/141562/sql-to-find-the-number-of-distinct-values-in-a-column). – SqlWorldWide

Antwort

0

Es gibt keine eindeutige Antwort auf diese Frage in TSQL aber es gibt so viele Maut

Wenn Sie SSIS verwenden diese leicht archivieren kann Data Profiling Task mit Column Value Distribution Profile Request Options (Data Profiling Task) Oder nutzen Sie irgendwelche anderen Daten usning wie Datamartist Profilierungswerkzeug ..

+0

Also gibt es keine Möglichkeit, ich kann eine Abfrage dafür schreiben, ist SQL Server? Es ist eher eine Aufgabe und der Lehrer möchte meine Logik sehen. Ich weiß, dass ich DISTINCT verwenden kann, um nur die eindeutigen Werte in einer Spalte abzufragen, aber was wäre der Prozentsatz? – pogo

+0

es wird nicht geradlinig sein müssen Sie Zeilenanzahl für jede Spalte und in Temp Tabellen schreiben und dann Aggregation und alle stuf –

+0

Dies ist nur ein Schulprojekt zu lernen, einige grundlegende T-SQL. Ich würde nicht zustimmen, dass es keinen direkten Weg gibt, dies in t-sql zu tun. In der Tat ist es ziemlich einfach. Ich denke, Sie sind weit über die Anforderungen hier kompliziert. –

1

ich würde dies so einfach gehen, ich glaube nicht, Ihr Lehrer Sie verwirren will mit Besonderheiten der SQL-Server, wenn Sie SQL lernen.

select (100.0*count(distinct MyFirstColumn))/count(*) as FirstPercentage, 
     (100.0*count(distinct MySecondColumn))/count(*) as secondPercentage 
from MyTable 

Beachten Sie die zusätzliche 012.336.Produkt, um es zu einem tatsächlichen Prozentsatz zu machen, die .0 wird es eine Dezimalzahl machen, sonst erhalten Sie eine ganzzahlige Division, die 0

+0

Vielen Dank Roberto. Das hat wirklich geholfen. – pogo

+0

Gibt es auch eine Möglichkeit, Spalten zu vergleichen? Also habe ich insgesamt 10 Spalten, ich möchte die verschiedenen% von jedem berechnen, aber auch jede Spalte vergleichen und die Spalte zurückgeben, die den höchsten Prozentsatz an unterschiedlichen Werten hat. – pogo

Verwandte Themen