集計関数 - min
適用対象:SQL Server
値が他のすべての項目より小さい 1 つの項目であるアトミック値のシーケンス ( $arg) からを返します。
構文
fn:min($arg as xdt:anyAtomicType*) as xdt:anyAtomicType?
引数
$arg
最小値を返す項目のシーケンス。
解説
min() に渡されるアトミック化された値のすべての型は、同じ基本型のサブタイプである必要があります。 受け入れられる基本型は、 gt 操作をサポートする型です。 これらの型には、3 つの組み込みの数値基本型 (日付/時刻基本型、xs:string、xs:boolean、xdt:untypedAtomic) が含まれます。 xdt:untypedAtomic 型の値は xs:double にキャストされます。 これらの型が混在している場合、または他の型の他の値が渡された場合は、静的エラーが発生します。
min() の結果は、xdt:untypedAtomic の場合は xs:double など、渡された型の基本型を受け取ります。 入力が静的に空の場合は、empty が暗黙的に指定され、静的エラーが返されます。
min() 関数は、入力シーケンス内の他の値よりも小さいシーケンス内の 1 つの値を返します。 xs:string 値の場合、既定の Unicode Codepoint 照合順序が使用されています。 xdt:untypedAtomic 値を xs:double にキャストできない場合、入力シーケンスでは値は無視 $arg。 入力が動的に計算された空のシーケンスである場合は、空のシーケンスが返されます。
例
このトピックでは、AdventureWorks データベースのさまざまな xml 型列に格納されている XML インスタンスに対する XQuery の例を示します。
A. min() XQuery 関数を使用した、労働時間が最も短いワーク センター拠点の検索
次のクエリでは、作業時間が最も少ない製品モデル (ProductModelID=7) の製造プロセス内のすべてのワーク センターの場所を取得します。 通常、次に示すように 1 つの拠点が返されます。 複数の場所に最低労働時間数が等しい場合は、すべて返されます。
select ProductModelID, Name, Instructions.query('
declare namespace AWMI=
"https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
for $Location in /AWMI:root/AWMI:Location
where $Location/@LaborHours =
min( /AWMI:root/AWMI:Location/@LaborHours )
return
<Location WCID= "{ $Location/@LocationID }"
LaborHrs= "{ $Location/@LaborHours }" />
') as Result
FROM Production.ProductModel
WHERE ProductModelID=7
上のクエリに関して、次の点に注意してください。
- XQuery プロローグの namespace キーワードは、名前空間プレフィックスを定義します。 このプレフィックスは、XQuery の本文で使用されます。
XQuery 本体は、WCID 属性と LaborHrs 属性を<持つ Location> 要素を持つ XML を構築します。
- クエリでは、ProductModelID と名前の値も取得されます。
結果を次に示します。
ProductModelID Name Result
--------------- ---------------- ---------------------------------
7 HL Touring Frame <Location WCID="45" LaborHrs="0.5"/>
実装の制限事項
制限事項は次のとおりです。
min() 関数は、すべての整数を xs:decimal にマップします。
xs:duration 型の値に対する min() 関数はサポートされていません。
基本データ型の境界を超えて複数の型が混在するシーケンスはサポートされません。
照合順序を提供する構文オプションはサポートされていません。