<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" 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/" > <channel><title>Comments on: Calculating Medians With SQL</title> <atom:link href="http://www.anthonydebarros.com/2010/07/25/calculating-medians-sql/feed/" rel="self" type="application/rss+xml" /><link>http://www.anthonydebarros.com/2010/07/25/calculating-medians-sql/</link> <description>DATA. JOURNALISM. LIFE.</description> <lastBuildDate>Tue, 31 Jan 2012 19:56:06 +0000</lastBuildDate> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>By: Frank</title><link>http://www.anthonydebarros.com/2010/07/25/calculating-medians-sql/comment-page-1/#comment-922</link> <dc:creator>Frank</dc:creator> <pubDate>Mon, 26 Jul 2010 06:38:47 +0000</pubDate> <guid isPermaLink="false">http://www.anthonydebarros.com/?p=823#comment-922</guid> <description>Check the PostgreSQL-wiki as well: http://wiki.postgresql.org/wiki/Aggregate_Median</description> <content:encoded><![CDATA[<p>Check the PostgreSQL-wiki as well:<br /> <a href="http://wiki.postgresql.org/wiki/Aggregate_Median" rel="nofollow">http://wiki.postgresql.org/wiki/Aggregate_Median</a></p> ]]></content:encoded> </item> <item><title>By: Anthony</title><link>http://www.anthonydebarros.com/2010/07/25/calculating-medians-sql/comment-page-1/#comment-912</link> <dc:creator>Anthony</dc:creator> <pubDate>Sun, 25 Jul 2010 16:51:02 +0000</pubDate> <guid isPermaLink="false">http://www.anthonydebarros.com/?p=823#comment-912</guid> <description>Here&#039;s the PostgreSQL code:CREATE TEMPORARY TABLE tmp ( &#160;&#160;&#160;ID SERIAL, &#160;&#160;&#160;   Class varchar(50), &#160;&#160;&#160;   FirstName varchar(50), &#160;&#160;&#160;   Grade decimal(5,1) );INSERT INTO tmp (Class, FirstName, Grade) &#160;&#160;&#160;   VALUES (&#039;Math&#039;, &#039;Bob&#039;, 65); INSERT INTO tmp (Class, FirstName, Grade) &#160;&#160;&#160;   VALUES (&#039;Math&#039;, &#039;Joe&#039;, 72); INSERT INTO tmp (Class, FirstName, Grade) &#160;&#160;&#160;   VALUES (&#039;Math&#039;, &#039;Sally&#039;, 95); INSERT INTO tmp (Class, FirstName, Grade) &#160;&#160;&#160;   VALUES (&#039;Science&#039;, &#039;Bob&#039;, 65); INSERT INTO tmp (Class, FirstName, Grade) &#160;&#160;&#160;   VALUES (&#039;Science&#039;, &#039;Joe&#039;, 81); INSERT INTO tmp (Class, FirstName, Grade) &#160;&#160;&#160;   VALUES (&#039;Science&#039;, &#039;Sally&#039;, 81); INSERT INTO tmp (Class, FirstName, Grade) &#160;&#160;&#160;   VALUES (&#039;Science&#039;, &#039;Mike&#039;, 72); SELECT &#160;&#160;&#160;   x.Class, &#160;&#160;&#160;   CAST(AVG(x.Grade) AS DECIMAL(6,1)) AS Median FROM ( &#160;&#160;&#160;   SELECT &#160;&#160;&#160;   Class, &#160;&#160;&#160;   FirstName, &#160;&#160;&#160;   Grade, &#160;&#160;&#160;   ROW_NUMBER() OVER ( &#160;&#160;&#160;&#160;&#160;&#160;      PARTITION BY Class &#160;&#160;&#160;&#160;&#160;&#160;      ORDER BY Grade ASC, ID ASC) AS RowAsc, &#160;&#160;&#160;   ROW_NUMBER() OVER ( &#160;&#160;&#160;&#160;&#160;&#160;      PARTITION BY Class &#160;&#160;&#160;&#160;&#160;&#160;      ORDER BY Grade DESC, ID DESC) AS RowDesc &#160;&#160;&#160;   FROM tmp ) AS x WHERE &#160;&#160;&#160;   RowAsc IN (RowDesc, RowDesc - 1, RowDesc + 1) GROUP BY x.Class ORDER BY x.Class</description> <content:encoded><![CDATA[<p>Here&#8217;s the PostgreSQL code:</p><p>CREATE TEMPORARY TABLE tmp (<br /> &nbsp;&nbsp;&nbsp;ID SERIAL,<br /> &nbsp;&nbsp;&nbsp;   Class varchar(50),<br /> &nbsp;&nbsp;&nbsp;   FirstName varchar(50),<br /> &nbsp;&nbsp;&nbsp;   Grade decimal(5,1)<br /> );</p><p>INSERT INTO tmp (Class, FirstName, Grade)<br /> &nbsp;&nbsp;&nbsp;   VALUES (&#8216;Math&#8217;, &#8216;Bob&#8217;, 65);<br /> INSERT INTO tmp (Class, FirstName, Grade)<br /> &nbsp;&nbsp;&nbsp;   VALUES (&#8216;Math&#8217;, &#8216;Joe&#8217;, 72);<br /> INSERT INTO tmp (Class, FirstName, Grade)<br /> &nbsp;&nbsp;&nbsp;   VALUES (&#8216;Math&#8217;, &#8216;Sally&#8217;, 95);<br /> INSERT INTO tmp (Class, FirstName, Grade)<br /> &nbsp;&nbsp;&nbsp;   VALUES (&#8216;Science&#8217;, &#8216;Bob&#8217;, 65);<br /> INSERT INTO tmp (Class, FirstName, Grade)<br /> &nbsp;&nbsp;&nbsp;   VALUES (&#8216;Science&#8217;, &#8216;Joe&#8217;, 81);<br /> INSERT INTO tmp (Class, FirstName, Grade)<br /> &nbsp;&nbsp;&nbsp;   VALUES (&#8216;Science&#8217;, &#8216;Sally&#8217;, 81);<br /> INSERT INTO tmp (Class, FirstName, Grade)<br /> &nbsp;&nbsp;&nbsp;   VALUES (&#8216;Science&#8217;, &#8216;Mike&#8217;, 72);</p><p>SELECT<br /> &nbsp;&nbsp;&nbsp;   x.Class,<br /> &nbsp;&nbsp;&nbsp;   CAST(AVG(x.Grade) AS DECIMAL(6,1)) AS Median<br /> FROM<br /> (<br /> &nbsp;&nbsp;&nbsp;   SELECT<br /> &nbsp;&nbsp;&nbsp;   Class,<br /> &nbsp;&nbsp;&nbsp;   FirstName,<br /> &nbsp;&nbsp;&nbsp;   Grade,<br /> &nbsp;&nbsp;&nbsp;   ROW_NUMBER() OVER (<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;      PARTITION BY Class<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;      ORDER BY Grade ASC, ID ASC) AS RowAsc,<br /> &nbsp;&nbsp;&nbsp;   ROW_NUMBER() OVER (<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;      PARTITION BY Class<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;      ORDER BY Grade DESC, ID DESC) AS RowDesc<br /> &nbsp;&nbsp;&nbsp;   FROM tmp<br /> ) AS x<br /> WHERE<br /> &nbsp;&nbsp;&nbsp;   RowAsc IN (RowDesc, RowDesc &#8211; 1, RowDesc + 1)<br /> GROUP BY x.Class<br /> ORDER BY x.Class</p> ]]></content:encoded> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 1/5 queries in 0.003 seconds using disk: basic
Object Caching 208/209 objects using disk: basic

Served from: www.anthonydebarros.com @ 2012-02-05 06:17:47 -->
