以下声明是从products表中获取所有非重复ID。有没有办法可以得到这个sql语句输出的行总数?
select min(product_id) from products
where market_code = 'germany'
group by product_code
product_id market_code product_code
1 uk AAA
1 uk AAA
1 uk AAA
2 germany BAA
2 germany BAA
3 uk BAA
由于
答案 0 :(得分:1)
你可以这样做:
SELECT COUNT(*)
FROM
(
select min(product_id) from products
where market_code = 'germany'
group by product_code
) AS t;
答案 1 :(得分:0)
实际上您的查询不是您所说的“以下声明是从产品表中获取所有唯一/非重复ID。” ,它将为product_code选择最低的product_id,而不是唯一的,例如,如果product_id - 2和product_id - 3为product_code A,它将只返回product_id - 2,它是最小值不唯一,如果你想要唯一的你可以这样做
SELECT product_code,product_id,count(*)
FROM TABLE
GROUP BY product_code,product_id
如果您只想要唯一/不重复的ID-s及其计数,则可以使用此查询进行选择
SELECT product_id,count(*)
FROM table
GROUP BY product_id
答案 2 :(得分:0)
声明:
select min(product_id)
from products
where market_code = 'germany'
group by product_code;
将拥有与德国产品代码值一样多的行数。如果您假设给定的产品ID从不具有两个代码(对于您的样本数据都是如此),那么以下内容将统计德国的产品而不使用产品ID:
select count(distinct product_code)
from products
where market_code = 'germany';