Study workspace

Prepare for SC-200 with a reference that remembers your progress.

All nine learning paths now run in the new architecture. Select one to reveal its brief and modules.

09 / 09

Choose a learning path

0/404 units
04Create queries for Microsoft Sentinel using KQL4 modules · 29 units · Query construction, aggregation, visualization, multi-table analysis, parsing, and reusable functions0/29 units complete
Learning path 04 · Create queries for Microsoft Sentinel using KQL

4 modules · 29 units · Query construction, aggregation, visualization, multi-table analysis, parsing, and reusable functions

0%

Study focus

KQL foundations

Build statements with filtering, projection, aggregation, time operations, and visualization.

Investigation queries

Analyze multi-table data with joins, unions, parsing, reusable functions, and Sentinel security context.

4 modules · 29 units

Select one or more modules

Each click adds or removes a module from your workspace. Units remain closed until you open them.

02

Module 2

Analyze query results using KQL

Focus: aggregation, latest or earliest records, dynamic arrays, time bins, and result visualizations.
0/7
01 / 07Introduction

Security detections often depend on converting raw events into counts, distinct entities, thresholds, trends, and visual patterns. This module centers on summarize and render.

Official moduleObjectives and prerequisites
02 / 07Use the summarize operator

summarize groups rows and calculates aggregate values. Without a by clause it produces one group; with by, it returns one row per unique grouping combination.

SecurityEvent
| where EventID == 4688
| summarize ProcessStarts = count()
    by Process, Computer
FunctionUse
count(), countif()Count rows, optionally satisfying a condition.
dcount()Estimate the number of distinct values.
sum(), avg()Total or average a numeric expression.
min(), max()Find an extreme scalar value.
percentile(), stdev()Describe a distribution.
Official lessonGrouping and aggregate functions
03 / 07Use the summarize operator to filter results

arg_max() and arg_min() return the complete row associated with the maximum or minimum value inside each group.

SecurityEvent
| summarize arg_max(TimeGenerated, *) by Account

Pipeline order is critical. Filtering for Event ID 4624 before arg_max returns each account's latest logon; filtering afterward returns accounts whose latest event of any kind happens to be a logon.

Exam takeaway: use max(TimeGenerated) when only the timestamp is needed; use arg_max(TimeGenerated, *) when columns from the corresponding row are needed.
Official lessonLatest and earliest rows per group
04 / 07Use the summarize operator to prepare data

make_list() creates a dynamic JSON array containing all values in a group, including duplicates. make_set() creates an array of distinct values.

SecurityEvent
| where EventID == 4624
| summarize Accounts = make_set(Account)
    by Computer

Arrays are useful for entity context in analytics rules, grouped investigation output, and later expansion with mv-expand.

Official lessonDynamic lists and sets
05 / 07Use the render operator to create visualizations

render converts tabular results into a chart. Supported lesson examples include area, bar, column, pie, scatter, and time charts. Prepare the correct columns with summarize before rendering.

SecurityEvent
| summarize Events = count()
    by bin(TimeGenerated, 1d)
| render timechart

bin() rounds values down to fixed intervals and is fundamental for time-series grouping. Charts support analysis and workbooks; analytics rules still evaluate the tabular query logic.

Official lessonCharts, time series, and binning
06 / 07Module assessment

Review grouping versus filtering, count versus dcount, max versus arg_max, make_list versus make_set, and the relationship among bin, summarize, and render.

Official assessmentAnalysis knowledge check
07 / 07Summary and resources

Transform event streams into meaningful security evidence by grouping at the right granularity, retaining the correct representative rows, and visualizing only well-shaped results.

Official moduleSummary and resources
End of learning pathCreate queries for Microsoft Sentinel using KQL