Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Szolgáltatások váltása a Verzió legördülő listával. További információ a navigációról.
A következőkre vonatkozik: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel
A kiértékelt kifejezés skaláris állandó értékét adja vissza.
Ez a függvény olyan lekérdezések esetén hasznos, amelyek szakaszos számításokat igényelnek. Kiszámíthatja például az események teljes számát, majd az eredmény használatával szűrheti az összes esemény egy bizonyos százalékát meghaladó csoportokat.
A két utasítást pontosvessző választja el egymástól.
Szintaxis
toscalar(
kifejezés)
További információ szintaxiskonvenciákról.
Paraméterek
| Név | Típus | Szükséges | Leírás |
|---|---|---|---|
| kifejezés | string |
✔️ | Az átalakítandó érték skaláris értékké. |
Visszatér
A kiértékelt kifejezés skaláris állandó értéke. Ha az eredmény táblázatos, akkor az első oszlop és az első sor lesz az átalakításhoz.
Borravaló
A let utasítást használhatja a lekérdezés olvashatóságához toscalar()használatakor.
Korlátozások
toscalar() nem alkalmazható olyan forgatókönyvre, amely minden sorban alkalmazza a függvényt. Ennek az az oka, hogy a függvény csak állandó számú alkalommal számítható ki a lekérdezés végrehajtása során.
Ez a korlátozás általában a következő hibát adja vissza: can't use '<column name>' as it is defined outside its row-context scope.
Az alábbi példában a lekérdezés a következő hibával meghiúsul:
'toscalar': can't use 'x' as it is defined outside its row-context scope.
let _dataset1 = datatable(x:long)[1,2,3,4,5];
let _dataset2 = datatable(x:long, y:long) [ 1, 2, 3, 4, 5, 6];
let tg = (x_: long)
{
toscalar(_dataset2| where x == x_ | project y);
};
_dataset1
| extend y = tg(x)
Ez a hiba a join operátorral hárítható el, ahogyan az alábbi példában is látható:
let _dataset1 = datatable(x: long)[1, 2, 3, 4, 5];
let _dataset2 = datatable(x: long, y: long) [1, 2, 3, 4, 5, 6];
_dataset1
| join (_dataset2) on x
| project x, y
kimeneti
| x | y |
|---|---|
| 1 | 2 |
| 3 | 4 |
| 5 | 6 |
További kárenyhítési minták valós forgatókönyvekhez
Számos gyakorlati esetben érdemes lehet skaláris értéket kiszámítani soronként egy olyan kifejezéssel, amely saját összesítést hajt végre, például:
| extend result = toscalar(T | where Key == key | summarize max(Value))
Ez a minta meghiúsul, mert toscalar() soronként egyszer nem lehet kiértékelni.
Használja az alábbi támogatott megoldási mintákat.
- Az adatok előzetes összesítése egyszer, majd az összesített eredmények visszaillesztése a főtáblába a jobb hatékonyság érdekében.
let summary =
T
| summarize maxValue = max(Value) by Key;
Dataset1
| join kind=leftouter summary on Key
| project Key, maxValue
- A legmagasabb értékkel rendelkező sor lekérésére használható
arg_max(). Ez akkor hasznos, ha a maximális értékre és a kapcsolódó oszlopokra is szüksége van.
let summary =
T
| summarize arg_max(Timestamp, *) by Key;
Dataset1
| lookup summary on Key
-
lookupKulcs-/értékleképezések használata a sorkörnyezeti szabálysértések elkerülése és a dimenziótáblák hatékony keresésének biztosítása érdekében.
let lookupTable =
T | summarize maxValue = max(Value) by Key;
Dataset1
| lookup lookupTable on Key
- Ablakfüggvények vagy
make-seriesidőablak-összesítések használata
Dataset1
| make-series maxValue = max(Value)
on Timestamp
from ago(1h) to now()
step 1m
by Key
Példák
Az ebben a szakaszban szereplő példák bemutatják, hogyan használhatja a szintaxist az első lépésekhez.
Tartomány beállítása kiértékeléshez
Értékelje ki Start, Endés Step skaláris állandóként, és használja az eredményt range kiértékeléshez.
let Start = toscalar(print x=1);
let End = toscalar(range x from 1 to 9 step 1 | count);
let Step = toscalar(2);
range z from Start to End step Step | extend start=Start, end=End, step=Step
kimeneti
| z | elkezd | vég | lépés |
|---|---|---|---|
| 1 | 1 | 9 | 2 |
| 3 | 1 | 9 | 2 |
| 5 | 1 | 9 | 2 |
| 7 | 1 | 9 | 2 |
| 9 | 1 | 9 | 2 |
Rögzített és dinamikus GUID létrehozása
Az alábbi példa bemutatja, hogyan használható toscalar() egy rögzített guid, amely pontosan egyszer van kiszámítva, és hogyan lehet dinamikus értékeket létrehozni guid.
let g1 = toscalar(new_guid());
let g2 = new_guid();
range x from 1 to 2 step 1
| extend x=g1, y=g2
kimeneti
| x | y |
|---|---|
| e6a15e72-756d-4c93-93d3-fe85c18d19a3 | c2937642-0d30-4b98-a157-a6706e217620 |
| e6a15e72-756d-4c93-93d3-fe85c18d19a3 | c6a48cb3-9f98-4670-bf5b-589d0e0dcaf5 |