我会切入正题:我有一个选择,我正在写一个比较冗长的where子句,我想要做的是计算百分比。计数后请选择不同的计数?
所以我需要的是所有结果的计数,然后我的每个不同的计数。
SELECT distinct count(*)
FROM mytable
WHERE mywhereclause
ORDER BY columnIuseInWhereClause
工作正常,让每一个人的价值观,但我想避免做这样
Select (Select count(*) from mytable WHERE mywhereclause),
distinct count(*)
FROM mytable
WHERE mywhereclause
东西,因为我会使用相同的where子句两次刚刚似乎没有必要。
这是针对OracleDB的,但我只使用标准的SQL语法,没有数据库特定的如果我可以帮助它。
感谢您的任何想法。
编辑: 样本数据
__ID__,__someValue__
1 | A
2 | A
3 | B
4 | C
我想A,B,C的occurances的号码以及整体计数。
__CountAll__,__ACounts__,__BCounts__,__CCounts__
4 | 2 | 1 | 1
这样我就可以得到
100% | 50% | 25% | 25%
这最后一部分,我可以大概判断出我自己。请原谅我缺乏经验,甚至逻辑思维,这是凌晨。 ;)
编辑2: 我确实已经写了一个有效的查询,但很笨拙,只要所有圣洁的heck,这一个是为了与group by一起尝试。
你的第一个查询没有多大意义,甚至更少,第二个......你到底是想什么做?添加一些示例表格数据和预期结果(以及格式化文本)。 – jarlh