Modelleri ve Kaydedilmiş Soruları Referans Alma
SQL veritabanlarında, yeni bir sorgu için veya bir ortak tablo ifadesi CTE olarak bir model veya mevcut bir soruyu temel alabiliriz.
Örneğin, çok sayıda tabloya yayılmış çok fazla verimiz olduğunu, ancak kişilerin bu verilerin bir alt kümesiyle en çok ilgilendiğini varsayalım. Bu sonuçları döndürmek için karmaşık bir sorguyu bir kez çalıştırabilir ve bu soruyu bir model olarak kaydedebiliriz. Böylece kişiler sorgularında herhangi bir tablo gibi başvurabilirler.
Yazarken modelleri ve soruları arayın
İlk olarak, kişilerin sorgulayabileceği bir sonuç kümesi döndüren bir soru veya model oluşturun ve kaydedin.
Bu soruya veya modele bir SQL sorgusunda başvurmak için, #
ile başlayan bir değişkende otomatik tamamlama aramayı kullanın.
{{'{{#arama teriminiz }} '}}
yazın ve Patrona, arama teriminizle ilgili modellerin ve soruların bir listesini görüntüleyecektir.
Ayrıca, sorgunuzda başvurmak istediğiniz modele veya soruya Patrona'da gezinerek soru veya model kimliğini bulabilirsiniz. Kimlik, tarayıcınızın adres çubuğundaki URL'de bulunur. Kimlik, /model/
veya /question/
sonrasındaki sayı olacaktır. Örneğin, https://patrona.example.com/model/12345-example-name
için modelin kimliği 12345
olacaktır.
Yalnızca #
ve ID
gereklidir. Patrona, sorguyu daha okunabilir hale getirmek için model veya soru adını görüntüler.
Ortak Tablo İfadesi (CTE) olarak model, tablo veya kaydedilmiş soru
Aynı sözdizimi, Ortak Tablo İfadelerinde (CTE'ler) (CTE'leri destekleyen SQL veritabanlarıyla) kullanılabilir:
WITH gizmo_siparisleri AS {{'{{#5-gizmo-2019-siparisleri}}'}}
SELECT count(*)
FROM gizmo_siparisleri
Bu sorgu çalıştırıldığında, {{'{{#5-gizmo-2019-siparisleri}}'}}
etiketi, başvurulan sorunun SQL sorgusuyla değiştirilecek ve parantez içine alınacaktır. Yani arka planda şöyle görünecek:
WITH
gizmo_siparisleri AS (
SELECT
*
FROM
siparisler AS o
INNER JOIN urunler AS p ON o.product_id = p.id
WHERE
p.category = 'Gizmo'
AND o.created_at BETWEEN '2019-01-01' AND '2019-12-31'
)
SELECT
count(*)
FROM
gizmo_siparisleri
Sınırlamalar ve ödünleşimler
- Yalnızca PostgreSQL, MySQL, Snowflake veya SQL Server gibi bir SQL veritabanıyla çalışırken bir model veya kaydedilmiş soruya bir sorguda başvurabilirsiniz.
- Seçtiğiniz model veya kaydedilmiş soru, yerel sorgu düzenleyicisinde şu anda seçtiğiniz veritabanıyla aynı veritabanına dayalı olmalıdır.
- Alt sorgularda değişkenlere başvuramazsınız. Modelin veya kaydedilmiş sorunun sorgusuna değil, yalnızca modelin veya kaydedilmiş sorunun sonuçlarına erişebilirsiniz. Örneğin, bir alan filtresi kullanan kaydedilmiş bir sorunuz varsa, bu değişkene başvuramazsınız. Kaydedilmiş sorunun sonuçları nasıl filtrelediğini değiştirmeniz gerekirse, bu soruyu güncellemeniz (veya çoğaltmanız) ve filtreyi uygulamanız gerekir.