- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-12-2023 08:05 AM
How can I return a specific record from the Glide Aggregate
var numbers = [];
var overridesGr = new GlideAggregate("accm_promotion");
overridesGr.addEncodedQuery("current_grade=senior_economist");//current_grade=senior_economist
overridesGr.addAggregate('COUNT');
overridesGr.query();
while (overridesGr.next()) {
//return overridesGr.getAggregate('COUNT');
var pm = overridesGr.getAggregate("COUNT");
gs.info(pm);
numbers.push(pm);
}
median(numbers);
function median(numbers) {
// median of [3, 5, 4, 4, 1, 1, 2, 3] = 3
var median = 0,
numsLen = numbers.length;
if (
numsLen % 2 === 0 // is even
) {
// average of two middle numbers
median = (numbers[numsLen / 2 - 1] + numbers[numsLen / 2]) / 2;
} else { // is odd
// middle number only
median = numbers[(numsLen - 1) / 2];
}
result = median / 2;
var rnd = Math.round(parseFloat(result));
gs.info("TRICIA RESULT " + result +" "+rnd); //TRICIA RESULT 25.5 (26) so I need the 26th record!
median = rnd;
if(median ==rnd){
gs.info(median);
gs.info("This is the 26th record: " + overridesGr.How to get the 26th record returned????);
}
var value = result;
if (isNaN(value)) {
value = 0;
}
}
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-12-2023 09:55 PM
Hi @triciav ,
o get the sys_id of the record at the 26th position, you need to add overridesGr.query() after calling overridesGr.chooseWindow(offset, offset+1) as shown below:
overridesGr.chooseWindow(offset, offset+1);
overridesGr.query(); // Add this line to execute the query
gs.info("This is the " + median + "th record: " + overridesGr.getValue("sys_id"));
This should retrieve the record at the 26th position and print its sys_id.
Shravan
Please mark this as helpful and correct answer, if this helps you
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-12-2023 08:37 AM
Hi @triciav ,
To get the 26th record from the GlideAggregate, you can use the setLimit() method to limit the number of records returned by the query and setOffset() method to specify the starting record
var overridesGr = new GlideAggregate("accm_promotion");
overridesGr.addEncodedQuery("current_grade=senior_economist");
overridesGr.addAggregate('COUNT');
overridesGr.query();
overridesGr.setLimit(1); // Limit the number of records returned to 1
overridesGr.setOffset(25); // Start from the 26th record (offset is zero-based)
if (overridesGr.next()) {
var pm = overridesGr.getAggregate("COUNT");
gs.info("TRICIA RESULT " + pm);
// Do something with the 26th record
gs.info("This is the 26th record: " + overridesGr.getValue("column_name"));
}
Replace "column_name" with the actual column name of the record you want to retrieve.
Regards,
Shravan.
Shravan
Please mark this as helpful and correct answer, if this helps you
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-12-2023 09:10 AM
Shravan,
I need to do a median to get the Middle number of the count and then round it to the next whole number as indicated on my code. How can I get the whole number result passed into the setOffset?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-12-2023 09:12 AM
I am also getting
Evaluator: com.glide.script.RhinoEcmaError: Cannot find function setOffset in object [object GlideAggregate]. script : Line(6) column(0) 3: overridesGr.addAggregate('COUNT'); 4: overridesGr.query(); 5: overridesGr.setLimit(1); // Limit the number of records returned to 1 ==> 6: overridesGr.setOffset(25); // Start from the 26th record (offset is zero-based) 7: 8: if (overridesGr.next()) { 9: var pm = overridesGr.getAggregate("COUNT");
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-12-2023 09:25 AM
Hi @triciav ,
Here is the update code without using setOffset function
var overridesGr = new GlideAggregate("accm_promotion");
overridesGr.addEncodedQuery("current_grade=senior_economist");
overridesGr.addAggregate('COUNT');
overridesGr.query();
if (overridesGr.next()) {
var pm = overridesGr.getAggregate("COUNT");
gs.info("TRICIA RESULT " + pm);
var median = Math.ceil(pm/2);
gs.info("This is the median value: " + median);
var offset = median - 1; // Offset is zero-based
overridesGr.setLimit(1);
overridesGr.addQuery("ORDERBY", "column_name"); // Replace column_name with the name of the column to order by
overridesGr.chooseWindow(offset, offset+1);
overridesGr.query();
if (overridesGr.next()) {
gs.info("This is the " + median + "th record: " + overridesGr.getValue("column_name"));
}
}
Shravan
Please mark this as helpful and correct answer, if this helps you