Forum Discussion
shabanashaik88
2 years agoNew Member
convert dax query to sql query
Bucket = var _start = CALCULATE([min],ALLEXCEPT(MFC_FC_TREND_ANALYSIS_VIEW,MFC_FC_TREND_ANALYSIS_VIEW[MFCName])) var _end = CALCULATE([max],ALLEXCEPT(MFC_FC_TREND_ANALYSIS_VIEW,MFC_FC_TREND_ANALYS...
Fowmy
2 years agoSuper User
shabanashaik88
Can you try this pattern?
WITH BucketCTE AS (
SELECT
MFCName,
MachineHours,
[min] = MIN(MachineHours) OVER (PARTITION BY MFCName),
[max] = MAX(MachineHours) OVER (PARTITION BY MFCName),
min_bucket = MAX(MachineHours) OVER (PARTITION BY MFCName) / 20
FROM
MFC_FC_TREND_ANALYSIS_VIEW
)
SELECT
MFCName,
MachineHours,
CASE
WHEN MachineHours IS NULL THEN NULL
WHEN MachineHours >= [min] AND MachineHours <= min_bucket THEN min_bucket
WHEN MachineHours > min_bucket AND MachineHours <= min_bucket * 2 THEN min_bucket * 2
WHEN MachineHours > min_bucket * 2 AND MachineHours <= min_bucket * 3 THEN min_bucket * 3
WHEN MachineHours > min_bucket * 3 AND MachineHours <= min_bucket * 4 THEN min_bucket * 4
WHEN MachineHours > min_bucket * 4 AND MachineHours <= min_bucket * 5 THEN min_bucket * 5
WHEN MachineHours > min_bucket * 5 AND MachineHours <= min_bucket * 6 THEN min_bucket * 6
WHEN MachineHours > min_bucket * 6 AND MachineHours <= min_bucket * 7 THEN min_bucket * 7
WHEN MachineHours > min_bucket * 7 AND MachineHours <= min_bucket * 8 THEN min_bucket * 8
WHEN MachineHours > min_bucket * 8 AND MachineHours <= min_bucket * 9 THEN min_bucket * 9
WHEN MachineHours > min_bucket * 9 AND MachineHours <= min_bucket * 10 THEN min_bucket * 10
WHEN MachineHours > min_bucket * 10 AND MachineHours <= min_bucket * 11 THEN min_bucket * 11
WHEN MachineHours > min_bucket * 11 AND MachineHours <= min_bucket * 12 THEN min_bucket * 12
WHEN MachineHours > min_bucket * 12 AND MachineHours <= min_bucket * 13 THEN min_bucket * 13
WHEN MachineHours > min_bucket * 13 AND MachineHours <= min_bucket * 14 THEN min_bucket * 14
WHEN MachineHours > min_bucket * 14 AND MachineHours <= min_bucket * 15 THEN min_bucket * 15
WHEN MachineHours > min_bucket * 15 AND MachineHours <= min_bucket * 16 THEN min_bucket * 16
WHEN MachineHours > min_bucket * 16 AND MachineHours <= min_bucket * 17 THEN min_bucket * 17
WHEN MachineHours > min_bucket * 17 AND MachineHours <= min_bucket * 18 THEN min_bucket * 18
WHEN MachineHours > min_bucket * 18 AND MachineHours <= min_bucket * 19 THEN min_bucket * 19
WHEN MachineHours > min_bucket * 19 AND MachineHours <= [max] THEN [max]
-- Add more WHEN clauses if needed for additional buckets
ELSE [max]
END AS Bucket
FROM
BucketCTE;