Counting Within Ranges

Counting Within Ranges

Post by Don » Wed, 04 Jan 2006 21:38:08


Is there a straight forward way to count (total) the number of items in a
range? For example, if I have a table with part numbers and prices, is
there a way to design a query to tell me the number of parts <$5.00,
$5.01-10.00, $10.01-$20.00, etc, etc, etc? Obviously, the actual prices are
random and vary within the ranges.

Any advice or pointers to references will be greatly appreciated!

Thanks!

Don
 
 
 

Counting Within Ranges

Post by Duane Hook » Wed, 04 Jan 2006 22:16:18

I recommend creating a table of price ranges:
tblPriceRanges
==================
MinPrice Currency
MaxPrice Currency
RangeTitle Text

You can then create a query with this table and your other table. Set the
criteria under your Prices field to
Between MinPrice And MaxPrice
View totals and Group By RangeTitle and Count Price.
--
Duane Hookom
MS Access MVP

 
 
 

Counting Within Ranges

Post by Don » Thu, 05 Jan 2006 00:07:05

Duane,

Okay, I created a couple of small sample tables to test this.
Unfortunately, I am a bit confused about the query. The first column of the
query view is the Price field. Under it I selected "Count" under total,
"Show" and for criteria used 'Between [minPrice] and [maxPrice]'. The
second column is the RangeText field and selected "GroupBy" and "Show".
Pretty much what you proposed. What is confusing me is your comment "View
totals and ..."

Fundamentally I see what you are getting at. Just not skilled enough to
finish it.

Thanks for the help!!

Don
 
 
 

Counting Within Ranges

Post by S0FSTCBERV » Thu, 05 Jan 2006 01:31:03

Try this. Create a totals query with the folowing fields --
Price Range: Partition([Price],0,999999,10)
Quanity in Price Range: Price
Set the Totals part of the grid to Group By for the Price Range: column and
Count for the Quanity in Price Range: column.
 
 
 

Counting Within Ranges

Post by Don » Thu, 05 Jan 2006 02:20:37

Duane,

After some additional tinkering, got it to work! (I ended trying on a
different app (time based).)

SQL is as follows:

SELECT Count(tblTimeValues.ArrivalTime) AS CountOfArrivalTime,
tblTimeRanges.RangeTitle, tblTimeRanges.minTime, tblTimeRanges.maxTime
FROM tblTimeRanges, tblTimeValues
WHERE (((tblTimeValues.ArrivalTime) Between [mintime] And [maxtime]))
GROUP BY tblTimeRanges.RangeTitle, tblTimeRanges.minTime,
tblTimeRanges.maxTime
ORDER BY tblTimeRanges.minTime;

Thanks for getting me pointed in the right direction!

Don
 
 
 

Counting Within Ranges

Post by Don » Thu, 05 Jan 2006 02:22:07

Karl,

Since PARTITION works on integers, I went back and tinkered with Duane's
suggested approach and managed to get it working:

SELECT Count(tblTimeValues.ArrivalTime) AS CountOfArrivalTime,
tblTimeRanges.RangeTitle, tblTimeRanges.minTime, tblTimeRanges.maxTime
FROM tblTimeRanges, tblTimeValues
WHERE (((tblTimeValues.ArrivalTime) Between [mintime] And [maxtime]))
GROUP BY tblTimeRanges.RangeTitle, tblTimeRanges.minTime,
tblTimeRanges.maxTime
ORDER BY tblTimeRanges.minTime;


Thanks for your suggestion! Probably end up using PARTITION for something!

Don