Another way of doing it . . . based on the ABOVE Query I gave you, plus, another Query using AGE ( returning INTEGER ) User Defined Query.
Code: Select all
-- Sample Query Below will return results I think you are looking for.
-- TWO important thing: 1. This is for a table I have and it works, you have to translate it for your table
-- 2. This may be WITH Base Parser, or, Direct with HSQL
Select
A."SUM_1_70",
A."SUM_1_70" / A."SUM_TOTAL" as "PCT_1_70",
A."SUM_71_150",
A."SUM_71_150" / A."SUM_TOTAL" as "PCT_71_150",
A."SUM_151_250",
A."SUM_151_250" / A."SUM_TOTAL" as "PCT_151_250",
A."SUM_>_250",
A."SUM_>_250" / A."SUM_TOTAL" as "PCT_>_250",
A."SUM_TOTAL"
From (
Select
CAST(SUM(CASE WHEN "MY_TABLE"."MY_INTEGER_COLUMN" Between 1 and 70 THEN 1 ELSE 0 END) as FLOAT) as "SUM_1_70",
CAST(SUM(CASE WHEN "MY_TABLE"."MY_INTEGER_COLUMN" Between 71 and 150 THEN 1 ELSE 0 END) as FLOAT) as "SUM_71_150",
CAST(SUM(CASE WHEN "MY_TABLE"."MY_INTEGER_COLUMN" Between 151 and 250 THEN 1 ELSE 0 END) as FLOAT) as "SUM_151_250",
CAST(SUM(CASE WHEN "MY_TABLE"."MY_INTEGER_COLUMN" > 250 THEN 1 ELSE 0 END) as FLOAT) as "SUM_>_250",
CAST(COUNT("MY_TABLE"."MY_INTEGER_COLUMN") as FLOAT) as "SUM_TOTAL"
From "MY_TABLE"
Where "MY_TABLE"."MY_DATE_COLUMN" Between '1999-12-28' and '2000-03-05'
) as A
Code: Select all
-- Sample Query Below will return results I think you are looking for.
-- THREE important thing: 1. Change the TABLE and COLUMN names to match your database
-- 2. This may be WITH Base Parser, or, Direct
-- 3. Uses AGE function ( returning INTEGER) - AGE("MY_TABLE"."BIRTH_DATE", CURRENT_DATE)
Select
A."SUM_1_10",
A."SUM_1_10" / A."SUM_TOTAL" as "PCT_1_10",
A."SUM_11_20",
A."SUM_11_20" / A."SUM_TOTAL" as "PCT_11_20",
A."SUM_21_30",
A."SUM_21_30" / A."SUM_TOTAL" as "PCT_21_30",
A."SUM_31_40",
A."SUM_31_40" / A."SUM_TOTAL" as "PCT_31_40",
A."SUM_41_50",
A."SUM_41_50" / A."SUM_TOTAL" as "PCT_41_50",
A."SUM_51_60",
A."SUM_51_60" / A."SUM_TOTAL" as "PCT_51_60",
A."SUM_61_70",
A."SUM_61_70" / A."SUM_TOTAL" as "PCT_61_70",
A."SUM_>_70",
A."SUM_>_70" / A."SUM_TOTAL" as "PCT_>_70",
A."SUM_TOTAL"
From (
Select
CAST(SUM(CASE WHEN AGE("MY_TABLE"."BIRTH_DATE", CURRENT_DATE) Between 1 and 10 THEN 1 ELSE 0 END) as FLOAT) as "SUM_1_10",
CAST(SUM(CASE WHEN AGE("MY_TABLE"."BIRTH_DATE", CURRENT_DATE) Between 11 and 20 THEN 1 ELSE 0 END) as FLOAT) as "SUM_11_20",
CAST(SUM(CASE WHEN AGE("MY_TABLE"."BIRTH_DATE", CURRENT_DATE) Between 21 and 30 THEN 1 ELSE 0 END) as FLOAT) as "SUM_21_30",
CAST(SUM(CASE WHEN AGE("MY_TABLE"."BIRTH_DATE", CURRENT_DATE) Between 31 and 40 THEN 1 ELSE 0 END) as FLOAT) as "SUM_31_40",
CAST(SUM(CASE WHEN AGE("MY_TABLE"."BIRTH_DATE", CURRENT_DATE) Between 41 and 50 THEN 1 ELSE 0 END) as FLOAT) as "SUM_41_50",
CAST(SUM(CASE WHEN AGE("MY_TABLE"."BIRTH_DATE", CURRENT_DATE) Between 51 and 60 THEN 1 ELSE 0 END) as FLOAT) as "SUM_51_60",
CAST(SUM(CASE WHEN AGE("MY_TABLE"."BIRTH_DATE", CURRENT_DATE) Between 61 and 70 THEN 1 ELSE 0 END) as FLOAT) as "SUM_61_70",
CAST(SUM(CASE WHEN AGE("MY_TABLE"."BIRTH_DATE", CURRENT_DATE) > 71 THEN 1 ELSE 0 END) as FLOAT) as "SUM_>_70",
CAST(COUNT(AGE("MY_TABLE"."MY_INTEGER_COLUMN")) as FLOAT) as "SUM_TOTAL"
From "MY_TABLE"
Where "MY_TABLE"."MY_DATE_COLUMN" Between '1999-12-28' and '2000-03-05'
) as A
I hope this helps, please be sure to let me / us know.
Sliderule
Thanks to add
[Solved] in your
1st post Subject (edit button top right) if this issue has been resolved.