I would use an interactive approach to capture a script for this. First, let's start with the data table:
![Michael_MXAK_0-1606922913008.png Michael_MXAK_0-1606922913008.png](https://community.jmp.com/t5/image/serverpage/image-id/28701i4074B20BB2F65F7D/image-size/medium?v=v2&px=400)
I left Count off because we won't need it but it won't hurt if it's there.
I selected the Score column, then navigated to Cols, Utilities, Make Binning Formula:
![Michael_MXAK_1-1606922971171.png Michael_MXAK_1-1606922971171.png](https://community.jmp.com/t5/image/serverpage/image-id/28702i6B1997E5412AE134/image-size/medium?v=v2&px=400)
And set Offset to 0.5, and bin width to 0.1:
![Michael_MXAK_2-1606923036446.png Michael_MXAK_2-1606923036446.png](https://community.jmp.com/t5/image/serverpage/image-id/28703iA96391D235FE93BB/image-size/medium?v=v2&px=400)
Right click the new column (Score Binned) and Copy Column Properties:
![Michael_MXAK_3-1606923089990.png Michael_MXAK_3-1606923089990.png](https://community.jmp.com/t5/image/serverpage/image-id/28704i548455E42D614A19/image-size/medium?v=v2&px=400)
Then open a new script window and paste (ctrl-V), which results in this JSL:
Add Column Properties(
Value Labels(
{-0.5 = "-0.5 — -0.4", -0.4 = "-0.4 — -0.3", -0.3 = "-0.3 — -0.2", -0.2 =
"-0.2 — -0.1", -0.1 = "-0.1 — 0", 0 = "0 — 0.1", 0.1 = "0.1 — 0.2", 0.2 =
"0.2 — 0.3", 0.3 = "0.3 — 0.4", 0.4 = "0.4 — 0.5", 0.5 = "0.5 — 0.6", 0.6 =
"0.6 — 0.7", 0.7 = "0.7 — 0.8", 0.8 = "0.8 — 0.9", 0.9 = "0.9 — 1", 1 =
"1 — 1.1", 1.1 = "1.1 — 1.2", 1.2 = "1.2 — 1.3", 1.3 = "1.3 — 1.4", 1.4 =
"1.4 — 1.5", 1.5 = "1.5 — 1.6", 1.6 = "1.6 — 1.7", 1.7 = "1.7 — 1.8", 1.8 =
"1.8 — 1.9", 1.9 = "1.9 — 2"}
),
Use Value Labels( 1 ),
Formula( 0.5 + 0.1 * Floor( (:Score - 0.5) / 0.1 ) )
)
Two things here: we don't care about any scores less than 0.5 (they don't exist in your description) or greater than 1, so we can change the properties a bit and edit the label names to match what you want. I've also added an If statement to capture the edge case where a score is exactly 1
Add Column Properties(
Value Labels(
{0.5 = "0.5 — 0.59", 0.6 = "0.6 — 0.69", 0.7 = "0.7 — 0.79", 0.8 = "0.8 — 0.89", 0.9 =
"0.9 — 1"}
),
Use Value Labels( 1 ),
Formula(
If(
(0.5 + 0.1 * Floor( (:Score - 0.5) / 0.1 )) == 1, 0.9,
0.5 + 0.1 * Floor( (:Score - 0.5) / 0.1 )
)
)
);
(BTW those labels aren't technically accurate, since 0.599 would be labeled as between 0.5 and 0.59)
We can wrap some code around this snippet to make it reusable, where we use the current data table, add a new column called Score Binned, and add these properties to that column:
dt = Current Data Table();
dt << New Column("Score Binned", Character);
dt:"Score Binned"n << Add Column Properties(
Value Labels(
{0.5 = "0.5 — 0.59", 0.6 = "0.6 — 0.69", 0.7 = "0.7 — 0.79", 0.8 = "0.8 — 0.89", 0.9 =
"0.9 — 1"}
),
Use Value Labels( 1 ),
Formula(
If(
(0.5 + 0.1 * Floor( (:Score - 0.5) / 0.1 )) == 1, 0.9,
0.5 + 0.1 * Floor( (:Score - 0.5) / 0.1 )
)
)
);
Now, back on our table, Tables > Summary takes us where we want to go. We put Group and Score Binned in Group, and that's all we actually need:
![Michael_MXAK_4-1606923615913.png Michael_MXAK_4-1606923615913.png](https://community.jmp.com/t5/image/serverpage/image-id/28705iFA92284D0D0DC2F5/image-size/medium?v=v2&px=400)
![Michael_MXAK_5-1606923638599.png Michael_MXAK_5-1606923638599.png](https://community.jmp.com/t5/image/serverpage/image-id/28706iAD0EAB77FC31199C/image-size/medium?v=v2&px=400)
Now, N Rows is what we want, it's just named wrong, so let's double-click the word "Source" on the left and copy the table creation script and replace the named table reference with "dt", our working table, and catch the new table in the variable "summ":
![Michael_MXAK_6-1606923683769.png Michael_MXAK_6-1606923683769.png](https://community.jmp.com/t5/image/serverpage/image-id/28707iB3FFFF9555225EC0/image-size/medium?v=v2&px=400)
dt = Current Data Table();
dt << New Column("Score Binned", Character);
dt:"Score Binned"n << Add Column Properties(
Value Labels(
{0.5 = "0.5 — 0.59", 0.6 = "0.6 — 0.69", 0.7 = "0.7 — 0.79", 0.8 = "0.8 — 0.89", 0.9 =
"0.9 — 1"}
),
Use Value Labels( 1 ),
Formula(
If(
(0.5 + 0.1 * Floor( (:Score - 0.5) / 0.1 )) == 1, 0.9,
0.5 + 0.1 * Floor( (:Score - 0.5) / 0.1 )
)
)
);
summ = dt << Summary(
Group( :Group, :Score Binned ),
Freq( "None" ),
Weight( "None" )
);
Finally, rename N Rows to "Total_Count" as desired:
dt = Current Data Table();
dt << New Column("Score Binned", Character);
dt:"Score Binned"n << Add Column Properties(
Value Labels(
{0.5 = "0.5 — 0.59", 0.6 = "0.6 — 0.69", 0.7 = "0.7 — 0.79", 0.8 = "0.8 — 0.89", 0.9 =
"0.9 — 1"}
),
Use Value Labels( 1 ),
Formula(
If(
(0.5 + 0.1 * Floor( (:Score - 0.5) / 0.1 )) == 1, 0.9,
0.5 + 0.1 * Floor( (:Score - 0.5) / 0.1 )
)
)
);
summ = dt << Summary(
Group( :Group, :Score Binned ),
Freq( "None" ),
Weight( "None" )
);
summ:"N Rows"n << Set Name("Total_Count");
Now, close the summary table, delete the Score Binned column from the source table, and test the script:
![Michael_MXAK_7-1606923867843.png Michael_MXAK_7-1606923867843.png](https://community.jmp.com/t5/image/serverpage/image-id/28708iF0B9D2AE62782890/image-size/medium?v=v2&px=400)
Final JSL again:
dt = Current Data Table();
dt << New Column("Score Binned", Character);
dt:"Score Binned"n << Add Column Properties(
Value Labels(
{0.5 = "0.5 — 0.59", 0.6 = "0.6 — 0.69", 0.7 = "0.7 — 0.79", 0.8 = "0.8 — 0.89", 0.9 =
"0.9 — 1"}
),
Use Value Labels( 1 ),
Formula(
If(
(0.5 + 0.1 * Floor( (:Score - 0.5) / 0.1 )) == 1, 0.9,
0.5 + 0.1 * Floor( (:Score - 0.5) / 0.1 )
)
)
);
summ = dt << Summary(
Group( :Group, :Score Binned ),
Freq( "None" ),
Weight( "None" )
);
summ:"N Rows"n << Set Name("Total_Count");
Tested on your attached data, which I literally just noticed
![Michael_MXAK_8-1606923973365.png Michael_MXAK_8-1606923973365.png](https://community.jmp.com/t5/image/serverpage/image-id/28709i3BDE4E47A8850C3A/image-size/medium?v=v2&px=400)