Bagikan melalui


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 guidtetap , 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