Udostępnij za pośrednictwem


toscalar()

Dotyczy: ✅Microsoft Fabric

Zwraca wartość stałej skalarnej obliczonego wyrażenia.

Ta funkcja jest przydatna w przypadku zapytań wymagających obliczeń etapowych. Na przykład oblicz łączną liczbę zdarzeń, a następnie użyj wyniku, aby filtrować grupy, które przekraczają określony procent wszystkich zdarzeń.

Wszystkie dwie instrukcje są oddzielone średnikiem.

Składnia

toscalar( wyrażenie)

Dowiedz się więcej na temat konwencji składni.

Parametry

Nazwisko Type Wymagania opis
wyrażenie string ✔️ Wartość, która ma być konwertowana na wartość skalarną.

Zwraca

Wartość stałej skalarnej obliczonego wyrażenia. Jeśli wynik jest tabelaryczny, pierwsza kolumna i pierwszy wiersz są pobierane do konwersji.

Napiwek

Instrukcję let można użyć do czytelności zapytania w przypadku korzystania z polecenia toscalar().

Ograniczenia

toscalar() Nie można zastosować w scenariuszu, który stosuje funkcję w każdym wierszu. Dzieje się tak, ponieważ funkcja może być obliczana tylko przez stałą liczbę razy podczas wykonywania zapytania. Zazwyczaj po osiągnięciu tego ograniczenia zwracany jest następujący błąd: can't use '<column name>' as it is defined outside its row-context scope.

W poniższym przykładzie zapytanie kończy się niepowodzeniem z powodu błędu:

'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)

Ten błąd można wyeliminować przy użyciu join operatora , jak w poniższym przykładzie:

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

Wyjście

x t
1 2
3 4
5 6

Przykłady

W przykładach w tej sekcji pokazano, jak używać składni, aby ułatwić rozpoczęcie pracy.

Ustawianie zakresu na potrzeby oceny

Oceń Startwartości , Endi Step jako stałe skalarne i użyj wyniku do range oceny.

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

Wyjście

z start end step
1 1 9 2
3 1 9 2
5 1 9 2
7 1 9 2
9 1 9 2

Generowanie stałego i dynamicznego identyfikatora GUID

W poniższym przykładzie pokazano, jak można użyć toscalar() do generowania stałych guid, obliczanych dokładnie raz i wartości dynamicznych dla guid.

let g1 = toscalar(new_guid());
let g2 = new_guid();
range x from 1 to 2 step 1
| extend x=g1, y=g2

Wyjście

x t
e6a15e72-756d-4c93-93d3-fe85c18d19a3 c2937642-0d30-4b98-a157-a6706e217620
e6a15e72-756d-4c93-93d3-fe85c18d19a3 c6a48cb3-9f98-4670-bf5b-589d0e0dcaf5