在“选择”查询中添加主键列时,不同的列数有所不同
Supplier_payment_terms的唯一计数为110,但是在添加PK列时,该计数变为数千。
select distinct supplier, unique_id from indirect_spend;
当在select中包含PK列时,我希望记录数为110。 Select必须仅包含供应商的unique_id。
答案 0 :(得分:1)
“当在选择中包含PK列时,我希望记录数相同,为110”
那么您期望错了。 SELECT DISTINCT导致结果中出现的所有 行 都是不同的,即结果中没有重复的 行 。< / p>
此外。想象两行(供应商ID唯一ID)(1 2)和(1 5)。您说您只希望结果中有一行。系统将如何确定要传递两行中的哪一行?
答案 1 :(得分:0)
由于PK是唯一的,因此将其添加到不同的查询中将始终导致从表中选择所有行。 (因为所有行现在都变得唯一)
由于一个供应商有许多unique_id,您怎么知道想要哪个?
Id Supplier
--- -----------
1 Supplier 1
2 Supplier 1
3 Supplier 1
4 Supplier 2
5 Supplier 2
为供应商1选择哪个ID?
答案 2 :(得分:0)
您可以使用聚合获取示例主键:
select supplier, min(unique_id), max(unique_id)
from indirect_spend
group by supplier;