tag:forum.selfhtml.org,2005:/self Abfrage welcher Wert nur 1 (2,3,...) mal vorkommt – SELFHTML-Forum 2009-01-14T10:31:04Z https://forum.selfhtml.org/self/2009/jan/13/abfrage-welcher-wert-nur-1-2-3-mal-vorkommt/1326537#m1326537 morp 2009-01-13T16:36:28Z 2009-01-13T16:36:28Z Abfrage welcher Wert nur 1 (2,3,...) mal vorkommt <p>Hallo!</p> <p>Mir fehlt irgendwie gerade die passende Idee. Ich möchte aus einer Tabelle all die Werte ausgeben die nur 1 (2,3,...) mal vorkommen.</p> <p>Bin ich da mit "count" auf der richtigen Spur oder total falsch?</p> <p>Gruß<br> morp</p> https://forum.selfhtml.org/self/2009/jan/13/abfrage-welcher-wert-nur-1-2-3-mal-vorkommt/1326538#m1326538 steckl stefan-stoeckl@gmx.de 2009-01-13T16:47:34Z 2009-01-13T16:47:34Z Abfrage welcher Wert nur 1 (2,3,...) mal vorkommt <p>Hi,</p> <blockquote> <p>Mir fehlt irgendwie gerade die passende Idee. Ich möchte aus einer Tabelle all die Werte ausgeben die nur 1 (2,3,...) mal vorkommen.</p> <p>Bin ich da mit "count" auf der richtigen Spur oder total falsch?</p> </blockquote> <p>Ich gehe mal von einer SQL aus.<br> COUNT ist schonmal gut, aber zusätzlich brauchst du noch <a href="http://sql.1keydata.com/de/sql-having.php" rel="nofollow noopener noreferrer">HAVING</a>.</p> <p>mfG,<br> steckl</p> https://forum.selfhtml.org/self/2009/jan/13/abfrage-welcher-wert-nur-1-2-3-mal-vorkommt/1326539#m1326539 Vinzenz Mai vinzenzmai@web.de 2009-01-13T16:57:33Z 2009-01-13T16:57:33Z Abfrage welcher Wert nur 1 (2,3,...) mal vorkommt <p>Hallo,</p> <blockquote> <blockquote> <p>Mir fehlt irgendwie gerade die passende Idee. Ich möchte aus einer Tabelle all die Werte ausgeben die nur 1 (2,3,...) mal vorkommen.</p> </blockquote> </blockquote> <blockquote> <blockquote> <p>Bin ich da mit "count" auf der richtigen Spur oder total falsch?</p> </blockquote> </blockquote> <blockquote> <p>COUNT ist schonmal gut, aber zusätzlich brauchst du noch <a href="http://sql.1keydata.com/de/sql-having.php" rel="nofollow noopener noreferrer">HAVING</a>.</p> </blockquote> <p>Dein Beitrag ist fachlich richtig, die verlinkte Ressource eine Katastrophe und nicht empfehlenswert. GROUP BY ist *nicht optional*, sondern zwingend vorgeschrieben (außer bei der kaputten MySQL-Implementierung, die für genug Ärger sorgt).</p> <p>Viel besser ist Danielas Artikel in SELFHTML aktuell:<br> <a href="http://aktuell.de.selfhtml.org/artikel/datenbanken/having/" rel="nofollow noopener noreferrer">Datensätze gruppieren mit SQL</a>.</p> <p>Freundliche Grüße</p> <p>Vinzenz</p> https://forum.selfhtml.org/self/2009/jan/13/abfrage-welcher-wert-nur-1-2-3-mal-vorkommt/1326546#m1326546 morp 2009-01-13T18:46:47Z 2009-01-13T18:46:47Z Abfrage welcher Wert nur 1 (2,3,...) mal vorkommt <p>Hallo!</p> <p>Besten Dank schon mal für die Antworten, leider fehlt mich noch der letzet Anstoß, bin leider blutiger Anfänger...</p> <p>Also, ich habe in etwa folgende Tabelle (tbl_lage)</p> <p>ID; xx<br> 1;  1<br> 1;  2<br> 1;  4<br> 2;  1<br> 2;  3<br> 2;  4<br> 3;  1<br> 3;  3<br> 3;  4</p> <p>Als Antwort möchte ich einfach die '2' haben, da es der einzige Wert ist der nur einmal vorkommt (oder eben die '3' da nur sie genau zweimal vorkommt).</p> <p>Und statt  '2' oder '3' noch besser die dazugehörige Beschreibung die wiederrum in einer anderen Tabelle (tbl_Gegenstand) steht.</p> <p>Wie gesagt, leider bekomme ich die korrekte mySQL Abfrage nicht hin.</p> <p>Vielen Dank!</p> <p>morp</p> https://forum.selfhtml.org/self/2009/jan/13/abfrage-welcher-wert-nur-1-2-3-mal-vorkommt/1326540#m1326540 Ilja Lorfinduil@gmx.de 2009-01-14T07:30:19Z 2009-01-14T07:30:19Z Abfrage welcher Wert nur 1 (2,3,...) mal vorkommt <p>yo Vinz,</p> <blockquote> <p>Dein Beitrag ist fachlich richtig, die verlinkte Ressource eine Katastrophe und nicht empfehlenswert. GROUP BY ist *nicht optional*, sondern zwingend vorgeschrieben (außer bei der kaputten MySQL-Implementierung, die für genug Ärger sorgt).</p> </blockquote> <p>der beitrag ist ganz ok, group by ist optional, probier es aus. in aller regel wollen die meisten auch mehr spalten ausgeben, als nur die der gruppierung, desegen werden wohl unterabfragen zum tragen kommen, aber das ist offen, was genau er sucht.</p> <p>Ilja</p> https://forum.selfhtml.org/self/2009/jan/13/abfrage-welcher-wert-nur-1-2-3-mal-vorkommt/1326541#m1326541 EKKi selfhtml.org@spam.mag.ekki.net 2009-01-14T07:34:37Z 2009-01-14T07:34:37Z Abfrage welcher Wert nur 1 (2,3,...) mal vorkommt <p>Mahlzeit Ilja,</p> <blockquote> <p>group by ist optional, probier es aus.</p> </blockquote> <p>In welchem Datenbanksystem mit welcher Version?</p> <p>MfG,<br> EKKi</p> <div class="signature">-- <br> sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:| </div> https://forum.selfhtml.org/self/2009/jan/13/abfrage-welcher-wert-nur-1-2-3-mal-vorkommt/1326542#m1326542 Ilja Lorfinduil@gmx.de 2009-01-14T07:55:44Z 2009-01-14T07:55:44Z Abfrage welcher Wert nur 1 (2,3,...) mal vorkommt <blockquote> <p>In welchem Datenbanksystem mit welcher Version?</p> </blockquote> <p>Oracle 10g</p> <p>Ilja</p> https://forum.selfhtml.org/self/2009/jan/13/abfrage-welcher-wert-nur-1-2-3-mal-vorkommt/1326543#m1326543 EKKi selfhtml.org@spam.mag.ekki.net 2009-01-14T08:57:00Z 2009-01-14T08:57:00Z Abfrage welcher Wert nur 1 (2,3,...) mal vorkommt <p>Mahlzeit Ilja,</p> <blockquote> <blockquote> <p>In welchem Datenbanksystem mit welcher Version?</p> </blockquote> <p>Oracle 10g</p> </blockquote> <p>Tabelle:<br> ID | Nachname | Vorname<br> ---+----------+--------<br> ...</p> <pre><code class="block language-sql"><span class="token keyword">SELECT</span> t<span class="token punctuation">.</span>Nachname <span class="token punctuation">,</span> <span class="token function">COUNT</span><span class="token punctuation">(</span>t<span class="token punctuation">.</span>ID<span class="token punctuation">)</span> <span class="token keyword">AS</span> Anzahl <span class="token keyword">FROM</span> Tabelle t </code></pre> <p>ORA-00937: keine Gruppenfunktion für Einzelgruppe</p> <pre><code class="block language-sql"><span class="token keyword">SELECT</span> t<span class="token punctuation">.</span>Nachname <span class="token punctuation">,</span> t<span class="token punctuation">.</span>Vorname <span class="token punctuation">,</span> <span class="token function">COUNT</span><span class="token punctuation">(</span>t<span class="token punctuation">.</span>ID<span class="token punctuation">)</span> <span class="token keyword">AS</span> Anzahl <span class="token keyword">FROM</span> Tabelle t <span class="token keyword">GROUP</span> <span class="token keyword">BY</span> t<span class="token punctuation">.</span>Nachname </code></pre> <p>ORA-00979: Kein GROUP BY-Ausdruck</p> <p><code class="language-sql"><span class="token keyword">SELECT</span> <span class="token operator">*</span> <span class="token keyword">FROM</span> v$version</code></p> <p>Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bi</p> <p>Und jetzt behaupte bitte noch einmal, dass es NICHT notwendig ist, innerhalb der GROUP BY-Anweisung alle Spalten anzugeben, die nicht durch irgendeine Gruppierungs- oder Aggregatsfunktion behandelt werden ...</p> <p>MfG,<br> EKKi</p> <div class="signature">-- <br> sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:| </div> https://forum.selfhtml.org/self/2009/jan/13/abfrage-welcher-wert-nur-1-2-3-mal-vorkommt/1326544#m1326544 Rouven 2009-01-14T09:05:20Z 2009-01-14T09:05:20Z Abfrage welcher Wert nur 1 (2,3,...) mal vorkommt <p>Hello,</p> <blockquote> <p>Und jetzt behaupte bitte noch einmal, dass es NICHT notwendig ist, innerhalb der GROUP BY-Anweisung alle Spalten anzugeben, die nicht durch irgendeine Gruppierungs- oder Aggregatsfunktion behandelt werden ...</p> </blockquote> <p>ich misch mich ungerne ein, aber war die Aussage nicht lediglich, dass HAVING kein GROUP BY erfordert?</p> <p>MfG<br> Rouven</p> <div class="signature">-- <br> -------------------<br> sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (<a href="http://selfspezial.atomic-eggs.com/scode/selfcode.php?encodieren" rel="nofollow noopener noreferrer">SelfCode</a>)<br> Don't lick your wounds: celebrate them. The scars you bear are the signs of a competitor.  --  character Richard Webber on Grey's Anatomy: 'Where the wild things are' </div> https://forum.selfhtml.org/self/2009/jan/13/abfrage-welcher-wert-nur-1-2-3-mal-vorkommt/1326545#m1326545 Ilja Lorfinduil@gmx.de 2009-01-14T10:31:04Z 2009-01-14T10:31:04Z Abfrage welcher Wert nur 1 (2,3,...) mal vorkommt <p>yo,</p> <blockquote> <p>ich misch mich ungerne ein, aber war die Aussage nicht lediglich, dass HAVING kein GROUP BY erfordert?</p> </blockquote> <p>genauso ist es Rouven. ich denke mal er hat es mit dem mysql bug durcheinander gebracht, spalten innerhalb einer gruppierung anzeigen zu können, die nicht in der grup by klausel enthalten sind und keine aggregat-funktion verwenden. aber das ist in diesem thread nicht das thema, sondern das man HAVING auch ohne GROUP BY klausel verwenden kann.</p> <p>Ilja</p> https://forum.selfhtml.org/self/2009/jan/13/abfrage-welcher-wert-nur-1-2-3-mal-vorkommt/1326550#m1326550 Frank (no reg) 2009-01-13T18:53:41Z 2009-01-13T18:53:41Z Abfrage welcher Wert nur 1 (2,3,...) mal vorkommt <p>Was für Früchte haben denn deine Bemühungen bisher hervorgebracht, sprich: Was für SQL hast du denn bisher produziert?</p> <p>Ciao, Frank</p> https://forum.selfhtml.org/self/2009/jan/13/abfrage-welcher-wert-nur-1-2-3-mal-vorkommt/1326548#m1326548 Vinzenz Mai vinzenzmai@web.de 2009-01-13T21:10:56Z 2009-01-13T21:10:56Z Abfrage welcher Wert nur 1 (2,3,...) mal vorkommt <p>Hallo,</p> <blockquote> <p>Also, ich habe in etwa folgende Tabelle (tbl_lage)</p> </blockquote> <blockquote> <p>ID; xx<br> 1;  1<br> 1;  2<br> 1;  4<br> 2;  1<br> 2;  3<br> 2;  4<br> 3;  1<br> 3;  3<br> 3;  4</p> </blockquote> <blockquote> <p>Als Antwort möchte ich einfach die '2' haben, da es der einzige Wert ist der nur einmal vorkommt (oder eben die '3' da nur sie genau zweimal vorkommt).</p> </blockquote> <p>Du möchtest also folgendes:</p> <p>Gib mir die Werte<br>     der Spalte xx und<br>     die Anzahl, wie oft dieser Wert vorkommt</p> <p>Es ist klar, dass es für jeden Wert der Spalte xx nur einen Datensatz geben darf (Du willst ja nicht dreimal angezeigt bekommen, dass der Wert 4 dreimal vorkommt). Somit kommen wir zu:</p> <pre><code class="block language-sql"><span class="token keyword">SELECT</span> <span class="token comment">-- Gib mir die Werte </span> xx<span class="token punctuation">,</span> <span class="token comment">-- der Spalte xx und </span> <span class="token function">COUNT</span><span class="token punctuation">(</span>xx<span class="token punctuation">)</span> Anzahl <span class="token comment">-- die Anzahl, wie oft dieser Wert vorkommt </span> <span class="token keyword">GROUP</span> <span class="token keyword">BY</span> <span class="token comment">-- und nur eine Zeile für jeden unterschiedlichen Wert </span> xx <span class="token comment">-- der Spalte xx </span> </code></pre> <p>Mit der HAVING-Klausel die gewünschten Zeilen auszufiltern, dürfte Dir nicht schwer fallen, dafür hast Du bereits Links auf erläuternde Artikel erhalten.</p> <blockquote> <p>Und statt  '2' oder '3' noch besser die dazugehörige Beschreibung die wiederrum in einer anderen Tabelle (tbl_Gegenstand) steht.</p> </blockquote> <p>Dazu benötigst Du einen Join. Lesetipps zu Joins habe ich selbstverständlich auch, schließlich haben wir in SELFHTML aktuell gleich zwei Artikel dazu:</p> <p>- <a href="http://aktuell.de.selfhtml.org/artikel/datenbanken/joins/" rel="nofollow noopener noreferrer">Einführung in Joins</a><br>  - <a href="http://aktuell.de.selfhtml.org/artikel/datenbanken/fortgeschrittene-joins/" rel="nofollow noopener noreferrer">Fortgeschrittene Jointechniken</a></p> <p>Freundliche Grüße</p> <p>Vinzenz</p> https://forum.selfhtml.org/self/2009/jan/13/abfrage-welcher-wert-nur-1-2-3-mal-vorkommt/1326547#m1326547 Ilja Lorfinduil@gmx.de 2009-01-14T07:46:21Z 2009-01-14T07:46:21Z Abfrage welcher Wert nur 1 (2,3,...) mal vorkommt <p>yo,</p> <blockquote> <p>Und statt  '2' oder '3' noch besser die dazugehörige Beschreibung die wiederrum in einer anderen Tabelle (tbl_Gegenstand) steht.</p> </blockquote> <p>sieht wohl so aus, als wenn du unterabfragen anstelle von GROUP BY und HAVING brauchst. welches dbms und welche version verwendest du den, welche tabellen sollen da alle mit rein und wie genau sehen die tabellen aus ?</p> <p>Ilja</p> https://forum.selfhtml.org/self/2009/jan/13/abfrage-welcher-wert-nur-1-2-3-mal-vorkommt/1326549#m1326549 Vinzenz Mai vinzenzmai@web.de 2009-01-14T01:27:03Z 2009-01-14T01:27:03Z Korrektur <p>Hallo Ingrid,</p> <blockquote> <blockquote> <p>Also, ich habe in etwa folgende Tabelle (tbl_lage)</p> </blockquote> </blockquote> <p>die Du vergessen hast ;-)</p> <blockquote> <p>Du möchtest also folgendes:</p> </blockquote> <blockquote> <p>Gib mir die Werte<br>     der Spalte xx und<br>     die Anzahl, wie oft dieser Wert vorkommt</p> </blockquote> <p>aus der Tabelle<br>       tbl_lage</p> <p>So ist's besser.</p> <blockquote> <p>Es ist klar, dass es für jeden Wert der Spalte xx nur einen Datensatz geben darf (Du willst ja nicht dreimal angezeigt bekommen, dass der Wert 4 dreimal vorkommt). Somit kommen wir zu:</p> </blockquote> <pre><code class="block language-sql"><span class="token keyword">SELECT</span> <span class="token comment">-- Gib mir die Werte </span> xx<span class="token punctuation">,</span> <span class="token comment">-- der Spalte xx und </span> <span class="token function">COUNT</span><span class="token punctuation">(</span>xx<span class="token punctuation">)</span> Anzahl <span class="token comment">-- die Anzahl, wie oft dieser Wert vorkommt </span> <span class="token keyword">FROM</span> <span class="token comment">-- aus der Tabelle </span> tbl_lage <span class="token comment">-- tbl_lage </span> <span class="token keyword">GROUP</span> <span class="token keyword">BY</span> <span class="token comment">-- und nur eine Zeile für jeden unterschiedlichen Wert </span> xx <span class="token comment">-- der Spalte xx </span> </code></pre> <p>Und die Moral von der Geschicht': Poste ungetesten Code nicht ...</p> <p>Freundliche Grüße</p> <p>Vinzenz</p>