<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Groschengedanken zu Software &#187; rang</title>
	<atom:link href="http://aysx.de/eingroschen/?feed=rss2&#038;tag=rang" rel="self" type="application/rss+xml" />
	<link>http://aysx.de/eingroschen</link>
	<description>... und vielleicht auch dem ganzen Rest</description>
	<lastBuildDate>Tue, 18 Jun 2019 17:59:37 +0000</lastBuildDate>
	<language>de-DE</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.38</generator>
	<item>
		<title>Rang in sql</title>
		<link>http://aysx.de/eingroschen/?p=53</link>
		<comments>http://aysx.de/eingroschen/?p=53#comments</comments>
		<pubDate>Sun, 06 Oct 2013 18:44:53 +0000</pubDate>
		<dc:creator><![CDATA[matthias]]></dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[rang]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://aysx.de/eingroschen/?p=53</guid>
		<description><![CDATA[[crayon-6a13f8d7adc13037360581/] Natürlich ist das obige Beispiel so in der Praxis nicht vorgekommen. Das Beispiel zeigt eine nützliche Struktur. Im Laufe der Zeit kam immer wieder die Anforderung der Durchnummerierung. Man braucht dazu keinen PK-Constraint, aber wenigstens irgendein Tupel, das unique &#8230; <a href="http://aysx.de/eingroschen/?p=53">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p></p><pre class="crayon-plain-tag">/*
	Nummeriere die Datens&auml;tze
	*************************

	Gegeben sei eine Tabelle aysx mit einem Primary Key. 
        Die Werte f&uuml;r den PK m&uuml;ssen nicht fortlaufend sein. 

        Aufgabe: Nummeriere die Datens&auml;tze 
	vom kleinsten bis zum gr&ouml;&szlig;sten PK-Wert.

	Das folgende MySQL-Script zeigt exemplarisch, wie 
        das machbar ist. Bedenke, dass die Bestimmung des 
        Rangs (gidf) nicht auf eine &quot;echte&quot; Tabelle beschr&auml;nkt 
        ist, sondern auch mit einem View und dem Ergebnis
	einer Abfrage durchgef&uuml;hrt werden kann.

	Beispieltext: aysx Matthias Kopp 2013
*/

create table aysx ( 
	id int PRIMARY KEY, 
	remark varchar ( 64 ));

/*
	Tabelle mit Beispieldaten f&uuml;llen.
*/

insert into aysx ( id, remark ) values ( 1,	'Eins' );
insert into aysx ( id, remark ) values ( 512,	'FiveOneTwo' );
insert into aysx ( id, remark ) values ( 21,	'Antv' );
insert into aysx ( id, remark ) values ( 42,	'Antwort' );
insert into aysx ( id, remark ) values ( 23,	'whatever' );

/*
	Wesentlich ist der self-join. Der PK-Constraint garantiert,
	dass jede aysx.id nur einmal vorkommt. Eine id ist immer
	gleich ihrer selbst und alle anderen sind entweder gr&ouml;&szlig;er
	oder kleiner. Die where-Bedingung sucht diejenigen Datens&auml;tze
	zusammen, die kleiner-gleich einer id sind - und das f&uuml;r
	alle ids. Schlie&szlig;lich wird f&uuml;r jede id eine Gruppe gebildet
	und die Anzahl der Elemente in der Gruppe ist eben der Rang.
*/

select count(*) as rang, t2.id
from aysx t1, aysx t2
where t1.id &amp;lt;= t2.id
group by t2.id;

/*
	Ohne Gruppierung und Z&auml;hlen - die &quot;expandierte&quot; Form.
	Hier kann man nachvollziehen, welche Elemente vorhanden sind.
	Z&auml;hle und gruppiere selbst!
*/

select t1.id, t2.id
from aysx t1, aysx t2
where t1.id &amp;lt;= t2.id
order by t2.id

/* Aur&auml;umen. */
drop table aysx;</pre><p>Natürlich ist das obige Beispiel so in der Praxis nicht vorgekommen. Das Beispiel zeigt eine nützliche Struktur. Im Laufe der Zeit kam immer wieder die Anforderung der Durchnummerierung. Man braucht dazu keinen PK-Constraint, aber wenigstens irgendein Tupel, das unique ist &#8211; und das findet sich. Jedenfalls konnte ich immer irgendwo eins auftreiben :)</p>
<p>Das Script oben habe ich mit Copy&amp;Paste aus <a title="SQuirrel SQL" href="http://www.squirrelsql.org/" target="_blank">SQuirreL SQL</a> übernommen, während ich mit einer<a title="MySQL" href="http://www.mysql.com/" target="_blank"> MySQL-Datenbank</a> verbunden war. Kann sein, dass andere RDBMS eine leicht abweichende Syntax haben. Aber im Prinzip sollte dieses Script auf gängigen SQL-Systemen lauffähig sein.</p>
]]></content:encoded>
			<wfw:commentRss>http://aysx.de/eingroschen/?feed=rss2&#038;p=53</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
