<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:admin="http://webns.net/mvcb/"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
	<channel> 

	<title>Comments on: SQL: Virtual Grouping?</title>
	<link>http://ask.metafilter.com/28971/SQL-Virtual-Grouping/</link>
	<description>Comments on Ask MetaFilter post SQL: Virtual Grouping?</description>
	<pubDate>Tue, 13 Dec 2005 11:42:54 -0800</pubDate>
	<lastBuildDate>Tue, 13 Dec 2005 11:42:54 -0800</lastBuildDate>
	<language>en-us</language>
	<docs>http://blogs.law.harvard.edu/tech/rss</docs>
	<ttl>60</ttl>

	<item>
		<title>Question: SQL: Virtual Grouping?</title>
		<link>http://ask.metafilter.com/28971/SQL-Virtual-Grouping</link>	
		<description>SQL: Virtual Grouping? &lt;br /&gt;&lt;br /&gt; I&apos;d like to get a count of transactions organized by the hour, so that I can determine which time period in the day is the busiest. I can get the count for a single hour with this:&lt;br&gt;
&lt;br&gt;
Select Count(Distinct TimeStamp) From Transactions Where TimeStamp Like &apos;00:%&apos;&lt;br&gt;
&lt;br&gt;
Our timestamps go from 00:00:00 to 23:60:60.&lt;br&gt;
&lt;br&gt;
So, what I want to do is consolidate a long list of these queries into something more efficient and versatile, if possible a single query:&lt;br&gt;
&lt;br&gt;
Select Count(Distinct TimeStamp) From Transactions Where TimeStamp Like &apos;00:%&apos;&lt;br&gt;
Select Count(Distinct TimeStamp) From Transactions Where TimeStamp Like &apos;01:%&apos;&lt;br&gt;
...&lt;br&gt;
Select Count(Distinct TimeStamp) From Transactions Where TimeStamp Like &apos;22:%&apos;&lt;br&gt;
Select Count(Distinct TimeStamp) From Transactions Where TimeStamp Like &apos;23:%&apos;&lt;br&gt;
&lt;br&gt;
What are some good ways to do this? Many thanks!</description>
		<guid isPermaLink="false">post:ask.metafilter.com,2005:site.28971</guid>
		<pubDate>Tue, 13 Dec 2005 11:42:16 -0800</pubDate>
		<dc:creator>odinsdream</dc:creator>
		
			<category>timestamp</category>
		
			<category>SQL</category>
		
			<category>database</category>
		
			<category>db</category>
		
	</item> <item>
		<title>By: odinsdream</title>
		<link>http://ask.metafilter.com/28971/SQL-Virtual-Grouping#456075</link>	
		<description>Er, the above should be Count(Distinct RecordID) in each line, sorry about that.</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2005:site.28971-456075</guid>
		<pubDate>Tue, 13 Dec 2005 11:42:54 -0800</pubDate>
		<dc:creator>odinsdream</dc:creator>
	</item><item>
		<title>By: ldenneau</title>
		<link>http://ask.metafilter.com/28971/SQL-Virtual-Grouping#456090</link>	
		<description>&lt;code&gt;&lt;br&gt;
select &lt;br&gt;
  count(left(timestamp, 2)), left(timestamp, 2) &lt;br&gt;
from transactions &lt;br&gt;
group by left(timestamp, 2)&lt;br&gt;
&lt;/code&gt;</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2005:site.28971-456090</guid>
		<pubDate>Tue, 13 Dec 2005 11:53:16 -0800</pubDate>
		<dc:creator>ldenneau</dc:creator>
	</item><item>
		<title>By: ltdan</title>
		<link>http://ask.metafilter.com/28971/SQL-Virtual-Grouping#456182</link>	
		<description>select datepart(hh,timestamp), count(distinct recordid)&lt;br&gt;
from transactions&lt;br&gt;
group by datepart(hh)&lt;br&gt;
&lt;br&gt;
or better yet, count(1) rather than count(distinct recordid) if you&apos;re just counting the number of records.</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2005:site.28971-456182</guid>
		<pubDate>Tue, 13 Dec 2005 13:03:50 -0800</pubDate>
		<dc:creator>ltdan</dc:creator>
	</item><item>
		<title>By: ltdan</title>
		<link>http://ask.metafilter.com/28971/SQL-Virtual-Grouping#456184</link>	
		<description>whoops...messed up the &apos;group by&apos;. should be &apos;group by datepart(hh,timestamp).</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2005:site.28971-456184</guid>
		<pubDate>Tue, 13 Dec 2005 13:04:39 -0800</pubDate>
		<dc:creator>ltdan</dc:creator>
	</item><item>
		<title>By: SNACKeR</title>
		<link>http://ask.metafilter.com/28971/SQL-Virtual-Grouping#456223</link>	
		<description>select datepart(hh, timestamp) as Hour, count(*) as Count&lt;br&gt;
from transactions&lt;br&gt;
group by datepart(hh, timestamp)&lt;br&gt;
order by datepart(hh, timestamp)</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2005:site.28971-456223</guid>
		<pubDate>Tue, 13 Dec 2005 13:32:07 -0800</pubDate>
		<dc:creator>SNACKeR</dc:creator>
	</item><item>
		<title>By: odinsdream</title>
		<link>http://ask.metafilter.com/28971/SQL-Virtual-Grouping#456237</link>	
		<description>itdan, there could be several transactions with the same RecordID, which should be treated as one &quot;count&quot; in the total. At least, that&apos;s what I was trying to accomidate with Count(Distinct RecordID).&lt;br&gt;
&lt;br&gt;
Thanks everyone, I&apos;ll try these out in the morning.</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2005:site.28971-456237</guid>
		<pubDate>Tue, 13 Dec 2005 13:40:57 -0800</pubDate>
		<dc:creator>odinsdream</dc:creator>
	</item><item>
		<title>By: blue mustard</title>
		<link>http://ask.metafilter.com/28971/SQL-Virtual-Grouping#456288</link>	
		<description>It looks like the timestamp column isn&apos;t a date datatype, so I don&apos;t think datepart() will work.  ldenneau&apos;s answer looks right, except for counting the duplicate records...  your count(distinct RecordID) should fix it.... &lt;br&gt;
&lt;br&gt;
&lt;code&gt;select count(distinct recordid), left(ts, 2)&lt;br&gt;
from transactions&lt;br&gt;
group by left(ts, 2)&lt;br&gt;
&lt;/code&gt;</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2005:site.28971-456288</guid>
		<pubDate>Tue, 13 Dec 2005 14:10:10 -0800</pubDate>
		<dc:creator>blue mustard</dc:creator>
	</item><item>
		<title>By: blue mustard</title>
		<link>http://ask.metafilter.com/28971/SQL-Virtual-Grouping#456305</link>	
		<description>Oops, looks like I&apos;m wrong about the datepart().  It&apos;s perfectly happy with expressions like &apos;00:00:00&apos;.</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2005:site.28971-456305</guid>
		<pubDate>Tue, 13 Dec 2005 14:18:55 -0800</pubDate>
		<dc:creator>blue mustard</dc:creator>
	</item><item>
		<title>By: andrew cooke</title>
		<link>http://ask.metafilter.com/28971/SQL-Virtual-Grouping#456328</link>	
		<description>it probably does a cast.</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2005:site.28971-456328</guid>
		<pubDate>Tue, 13 Dec 2005 14:29:15 -0800</pubDate>
		<dc:creator>andrew cooke</dc:creator>
	</item>
	</channel>
</rss>
