toscalar()
Berlaku untuk: ✅Microsoft Fabric✅✅
Mengembalikan nilai konstanta skalar dari ekspresi yang dievaluasi.
Fungsi ini berguna untuk kueri yang memerlukan penghitungan bertahap. Misalnya, hitung jumlah total peristiwa, lalu gunakan hasilnya untuk memfilter grup yang melebihi persentase tertentu dari semua peristiwa.
Setiap dua pernyataan dipisahkan oleh titik koma.
Sintaks
toscalar(
expression)
Pelajari selengkapnya tentang konvensi sintaksis.
Parameter
Nama | Tipe | Wajib | Deskripsi |
---|---|---|---|
expression | string |
✔️ | Nilai yang akan dikonversi menjadi nilai skalar. |
Mengembalikan
Nilai konstanta skalar dari ekspresi yang dievaluasi. Jika hasilnya adalah tabular, maka kolom pertama dan baris pertama diambil untuk konversi.
Tip
Anda dapat menggunakan pernyataan let untuk keterbacaan kueri saat menggunakan toscalar()
.
Batasan
toscalar()
tidak dapat diterapkan pada skenario yang menerapkan fungsi pada setiap baris. Ini karena fungsi hanya dapat dihitung berapa kali konstan selama eksekusi kueri.
Biasanya, ketika batasan ini terpukul, kesalahan berikut dikembalikan: can't use '<column name>' as it is defined outside its row-context scope.
Dalam contoh berikut, kueri gagal dengan kesalahan:
'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)
Kegagalan ini dapat dimitigasi dengan menggunakan join
operator, seperti dalam contoh berikut:
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
Hasil
x | y |
---|---|
1 | 2 |
3 | 4 |
5 | 6 |
Contoh
Contoh di bagian ini memperlihatkan cara menggunakan sintaks untuk membantu Anda memulai.
Atur rentang untuk evaluasi
Mengevaluasi Start
, End
, dan Step
sebagai konstanta skalar, dan menggunakan hasilnya untuk evaluasi range
.
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
Hasil
z | mulai | akhir | langkah |
---|---|---|---|
1 | 1 | 9 | 2 |
3 | 1 | 9 | 2 |
5 | 1 | 9 | 2 |
7 | 1 | 9 | 2 |
9 | 1 | 9 | 2 |
Hasilkan GUID tetap dan dinamis
Contoh berikut menunjukkan bagaimana toscalar()
dapat digunakan untuk menghasilkan guid
tetap , dihitung dengan tepat sekali, dan nilai dinamis untuk guid
.
let g1 = toscalar(new_guid());
let g2 = new_guid();
range x from 1 to 2 step 1
| extend x=g1, y=g2
Hasil
x | y |
---|---|
e6a15e72-756d-4c93-93d3-fe85c18d19a3 | c2937642-0d30-4b98-a157-a6706e217620 |
e6a15e72-756d-4c93-93d3-fe85c18d19a3 | c6a48cb3-9f98-4670-bf5b-589d0e0dcaf5 |
Konten terkait
- sekilas jenis fungsi Skalar