我有一个场景,其中一个表包含2列。 产品和子类似
search(event) {
let uniqueArray = [];
this.autocompletedata.filter((entry) => {
console.log('entryyyy', entry);
this.results = entry['items'].filter(a => this.showFilter == 1 ? a['item'].startsWith(event.query) :
this.showFilter == 2 ? a['service'].startsWith(event.query) :
this.showFilter == 3 ? a['phoneNum'].startsWith(event.query) : false );
const curr: string[] = this.results.map(data => data.item ? data.item :
data.service ? data.service : data.phoneNum ? data.phoneNum : false );
this.results = curr.filter((x, i, a) => x && a.indexOf(x) === i);
});
console.log(this.results);
}
我想找到大于1. 产品的col sub 的元素超过1.But diff产品不一样。
所以我的结果将是 sub1 , sub3 预期结果将是截然不同的:
Sno Product Sub
1 pr1 sub1
2 pr1 sub1
3 pr2 sub1
4 pr2 sub1
5 pr3 sub2
6 pr4 sub3
7 pr5 sub3
8 pr6 sub4
9 pr6 sub4
我尝试在产品上使用group by,并尝试使用以下内容:
Sub
1 sub1
2 sub3
但这对于给定的方案不正确。 需要你的建议。
答案 0 :(得分:2)
每sub and use
HAVING`聚合只能获得包含多种产品的广告:
select sub
from table1
group by sub
having min(product) <> max(product);
或
select sub
from table1
group by sub
having count(distinct product) > 1;
答案 1 :(得分:1)
根据相关提供的示例数据,您似乎正在查找具有多个Sub
的列product
中的所有不同行。您可以使用以下查询来实现此目的。
select a.sub from (
select distinct sub, product from table1
) a
group by a.sub
having count(*) > 1
<强>结果:强>
SUB
--------
1 sub1
2 sub3
您可以查看演示 here
答案 2 :(得分:0)
SELECT sub FROM table1
GROUP BY sub
HAVING COUNT(sub) > 1
答案 3 :(得分:0)
SELECT t1.product,t1.sub,t1.Count
FROM
(SELECT product,sub,DENSE_RANK() OVER (Partition By product ORDER BY Sub) Count
FROM table1
) t1
WHERE t1.Count=2
-- = 2 Means product Repeated more than 1