Aracılığıyla paylaş


StructureColumn (DMX)

Şunlar için geçerlidir: SQL Server Analysis Services

Belirtilen büyük/küçük harfe karşılık gelen yapı sütununun değerini veya belirtilen durumda iç içe yerleştirilmiş bir tablonun tablo değerini döndürür.

Sözdizimi

  
StructureColumn('structure column name')  

Bağımsız değişken

yapı-sütun-adı.
Bir servis talebi veya iç içe tablo madenciliği yapı sütununun adı.

Sonuç Türü

Döndürülen tür, <yapısı sütun adı> parametresinde başvuruda bulunan sütunun türüne bağlıdır. Örneğin, başvuruda bulunan madencilik yapısı sütunu bir skaler değer içeriyorsa işlev bir skaler değer döndürür.

Başvuruda bulunan madencilik yapısı sütunu iç içe yerleştirilmiş bir tabloysa işlev bir tablo değeri döndürür. Döndürülen tablo değeri, bir alt SELECT deyiminin FROM yan tümcesinde kullanılabilir.

Açıklamalar

Bu işlev çok biçimlidir ve SELECT ifade listesi, WHERE koşul ifadesi ve ORDER BY ifadesi dahil olmak üzere ifadelere izin veren bir deyimin herhangi bir yerinde kullanılabilir.

Madencilik yapısındaki sütunun adı bir dize değeridir ve bu nedenle tek tırnak içine alınmalıdır: örneğin, StructureColumn('sütun 1'). Aynı ada sahip birden çok sütun varsa, ad, kapsayan SELECT deyimi bağlamında çözülür.

StructureColumn işlevi kullanılarak bir sorgudan döndürülen sonuçlar, modeldeki filtrelerin varlığından etkilenir. Yani model filtresi, madencilik modeline dahil edilen durumları denetler. Bu nedenle, yapı sütunundaki bir sorgu yalnızca madencilik modelinde kullanılan durumları döndürebilir. Araştırma modeli filtrelerinin hem büyük/küçük harf tabloları hem de iç içe tablo üzerindeki etkisini gösteren bir kod örneği için bu konunun Örnekler bölümüne bakın.

Bu işlevi bir DMX SELECT deyiminde kullanma hakkında daha fazla bilgi için bkz. SELECT FROM <model>. CASES (DMX) veya SELECT FROM <yapısı>. SERVIS TALEPLERI.

Hata İletileri

Kullanıcının üst madencilik yapısı üzerinde detaylandırma izni yoksa aşağıdaki güvenlik hatası oluşur:

'{user/}'%kullanıcısının '%{model/}' madencilik modelinin üst madencilik yapısında detaya gitme izni yok.

Geçersiz bir yapı sütun adı belirtilirse aşağıdaki hata iletisi oluşturulur:

'%{structure-column-name/}' araştırma yapısı sütunu geçerli bağlamda '%{structure/}' üst araştırma yapısında bulunamadı ({line/}, sütun %{column/}) %.

Örnekler

Bu örnekler için aşağıdaki madencilik yapısını kullanacağız. Madencilik yapısının, Products ve Hobbiesiki iç içe tablo sütunu içerdiğini unutmayın. Hobbies sütunundaki iç içe tablo, iç içe tablo için anahtar olarak kullanılan tek bir sütuna sahiptir. Products sütunundaki iç içe yerleştirilmiş tablo, hem anahtar sütunu hem de giriş için kullanılan diğer sütunları içeren karmaşık bir iç içe tablodur. Aşağıdaki örneklerde, bir model her sütunu kullanamasa bile veri madenciliği yapısının birçok farklı sütunu içerecek şekilde nasıl tasarlandığı gösterilmektedir. Bu sütunlardan bazıları model düzeyinde desenleri genelleştirmek için yararlı olmayabilir, ancak detaylandırma için çok yararlı olabilir.

CREATE MINING STRUCTURE [MyStructure]   
(  
CustomerName TEXT KEY,  
Occupation TEXT DISCRETE,  
Age LONG CONTINUOUS,  
MaritalStatus TEXT DISCRETE,  
Income LONG CONTINUOUS,  
Products  TABLE  
 (  
    ProductNameTEXT KEY,  
    Quantity LONG CONTINUOUS,  
    OnSale BOOLEAN  DISCRETE  
)  
 Hobbies  TABLE  
 (  
    Hobby KEY  
 ))  

Ardından, aşağıdaki örnek kodu kullanarak yeni oluşturduğunuz yapıyı temel alan bir araştırma modeli oluşturun:

ALTER MINING STRUCTURE [MyStructure] ADD MINING MODEL [MyModel] (  
CustomerName,  
Age,  
MaritalStatus,  
Income PREDICT,  
Products   
(  
ProductName  
) WITH FILTER(NOT OnSale)  
) USING Microsoft_Decision_Trees   
WITH FILTER(EXISTS (Products))  

Örnek Sorgu 1: Madencilik Yapısından Sütun Döndürme

Aşağıdaki örnek sorgu, madencilik modelinin parçası olarak tanımlanan CustomerName ve Agesütunlarını döndürür. Ancak sorgu, yapısının parçası olan ancak madencilik modelinin parçası olmayan Agesütununu da döndürür.

SELECT CustomerName, Age, StructureColumn('Occupation') FROM MyModel.CASES   
WHERE Age > 30  

30 yaşın üzerindeki müşterilerle ilgili servis taleplerini kısıtlamak için satırları filtreleme işleminin model düzeyinde gerçekleştiğini unutmayın. Bu nedenle, bu ifade yapı verilerine dahil edilen ancak model tarafından kullanılmayan servis taleplerini döndürmez. Modeli (EXISTS (Products)) oluşturmak için kullanılan filtre koşulu servis taleplerini yalnızca ürün satın alan müşterilerle kısıtladığı için, yapıda bu sorgu tarafından döndürülmeyen durumlar olabilir.

Örnek Sorgu 2: Yapı Sütununa Filtre Uygulama

Aşağıdaki örnek sorgu yalnızca CustomerName ve Agemodel sütunlarını ve Productsiç içe tablo Products, aynı zamanda modelin parçası olmayan iç içe tablodaki sütun Quantity değerini döndürür.

SELECT CustomerName, Age,  
(SELECT ProductName, StructureColumn('Quantity') FROM Products) FROM MA.CASES   
WHERE StructureColumn('Occupation') = 'Architect'  

Bu örnekte, yapı sütununa bir filtre uygulandığını ve bu filtrenin, olayları mesleği 'Mimar' (WHERE StructureColumn('Occupation') = 'Architect') olan müşterilerle kısıtlandığını unutmayın. Model filtre koşulu her zaman model oluşturulduğunda servis talebine uygulandığından, model durumlarına yalnızca Products tablosunda en az bir uygun satır içeren durumlar dahil edilir. Bu nedenle, hem iç içe tablodaki filtre Products hem de büyük/küçük harf ('Occupation')filtre uygulanır.

Örnek Sorgu 3: İç İçe Tablodan Sütun Seçme

Aşağıdaki örnek sorgu, modelden eğitim örnekleri olarak kullanılan müşterilerin adlarını döndürür. Sorgu, her müşteri için satın alma ayrıntılarını içeren iç içe bir tablo da döndürür. Model ProductName sütununu içerse de, model ProductName sütununun değerini kullanmaz. Model yalnızca ürünün normal (NOT``OnSale) fiyatla satın alındığını denetler. Bu sorgu yalnızca ürün adını döndürmekle kalmaz, aynı zamanda modele dahil olmayan satın alınan miktarı da döndürür.

SELECT CustomerName,    
(SELECT ProductName, StructureColumn('Quantity')FROM Products)   
FROM MyModel.CASES  

Araştırma modelinde detaylandırma etkinleştirilmediği sürece ProductName sütununu veya Quantity sütununu döndüremeyeceğinizi unutmayın.

Örnek Sorgu 4: İç İçe Tablo Sütunlarını Filtreleme ve Döndürme

Aşağıdaki örnek sorgu, araştırma yapısına dahil edilen ancak modele dahil olmayan büyük/küçük harf ve iç içe tablo sütunlarını döndürür. Model, OnSale ürünlerin varlığına göre zaten filtrelenmiştir, ancak bu sorgu madencilik yapısı sütununa bir filtre ekler Quantity:

SELECT CustomerName, Age, StructureColumn('Occupation'),   
(SELECT ProductName, StructureColumn('Quantity') FROM Products)   
FROM MyModel.CASES   
WHERE EXISTS (SELECT * FROM Products WHERE StructureColumn('Quantity')>1)  

Ayrıca Bkz.

Veri Madenciliği Uzantıları (DMX) İşlev Başvurusu
İşlevleri (DMX)
Genel Tahmin İşlevleri (DMX)