8 sql
下面是我编写的SQL查询,用于查找每个产品ID(proc_id)的总行数:
SELECT proc_id, count(*)
FROM proc
WHERE grouping_primary = 'SLB'
AND eff_date = '01-JUL-09'
GROUP BY proc_id
ORDER BY proc_id;
Run Code Online (Sandbox Code Playgroud)
下面是上面SQL查询的结果:
proc_id count(*) 01 626 02 624 03 626 04 624 05 622 06 624 07 624 09 624
请注意,proc_id ='01',proc_id ='03'和proc_id ='05'的总计数不同(不等于624行,因为其他proc_id).
如何编写SQL查询以查找proc_id ='01',proc_id ='03'和proc_id ='05'与其他proc_id相比哪些proc_id行不同?
Rem*_*anu 14
首先,您需要定义使'624'正确的标准.这是平均值count(*)吗?是count(*)最经常发生的吗?这是你最喜欢的count(*)吗?
然后,您可以使用HAVING子句来分隔与您的条件不匹配的子句:
SELECT proc_id, count(*)
FROM proc
WHERE grouping_primary = 'SLB'
AND eff_date = '01-JUL-09'
GROUP BY proc_id
HAVING count(*) <> 624
ORDER BY proc_id;
Run Code Online (Sandbox Code Playgroud)
要么:
SELECT proc_id, count(*)
FROM proc
WHERE grouping_primary = 'SLB'
AND eff_date = '01-JUL-09'
GROUP BY proc_id
HAVING count(*) <> (
<insert here a subquery that produces the magic '624'>
)
ORDER BY proc_id;
Run Code Online (Sandbox Code Playgroud)
如果您知道 624 是一个神奇的数字:
SELECT proc_id, count(*)
FROM proc
WHERE grouping_primary = 'SLB'
AND eff_date = '01-JUL-09'
GROUP BY proc_id
HAVING count(*) <> 624
ORDER BY proc_id;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
94203 次 |
| 最近记录: |