[英]Best way to construct a query?
首先,我想扔掉我對SQL還很陌生的東西。
假設您有一個包含x和y列的表,其中x和y均為正整數。
問題1:
什么是找到,如果指定的最佳方式y
值i
存在的所有x
值?
問題2:
什么是找到,如果指定的最佳方式y
值i
存在於每一個x
在一組x
大小為p值?
我找到了一種方法,在第一種情況下,我不進行多次自我聯接,而在第二種情況下,進行p次自我聯接。 但對實現此目的的更好方法感到好奇。
表格示例:
x,y
---
1,a
1,b
2,a
3,b
3,c
您的猜想是正確的:使用大量的聯接非常低效 。
這是有效的方法:
問題1:如果前提為真,則這兩個值將相同
select
(select count(distinct x) from t1 where y = '1') as x_count_with_y,
(select count(distinct x) from t1) as x_count
問題2:如果前提為真,則此值將與集合中的x數相同
select count(distinct x)
from t1
where y = '1'
and x in (1,2,3,5,8)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.