我有SELECT
,结果为:
| NAZEV
1 test
2 test
3 test111
4 test111
5 test111
6 test12
我想在结果中添加函数SUM()
[或count
]:
| NAZEV | Pocet
1 test 2
2 test111 3
3 test12 1
我目前的剧本:
select sb.nazev from Aplikacni_log lg
join zadavaci_postup zp on zp.id = lg.id_zp
join subjekt sb on sb.id = zp.id_zadavatel
where lg.create_cas > to_date('08.11.2014', 'DD.MM.YYYY')
order by sb.nazev asc
答案 0 :(得分:1)
要使用sum
或count
以及要在上分组的列,您需要group by
子句:
select sb.nazev, count(*)
from Aplikacni_log lg
...
group by sb.nazev
order by sb.nazev asc
如果您不需要列(或列)进行分组,则可以省略group by
。结果将是总count
或sum
:
select count(*)
from Aplikacni_log lg
...
答案 1 :(得分:1)
为了对特定字段使用SUM()和COUNT()等函数,您需要在该字段上使用GROUP BY。
有些样本可以在http://www.w3schools.com/sql/sql_func_count.asp
找到
你的代码应该成为:
select sb.nazev, count(sb.nazev) from Aplikacni_log lg
join zadavaci_postup zp on zp.id = lg.id_zp
join subjekt sb on sb.id = zp.id_zadavatel
where lg.create_cas > to_date('08.11.2014', 'DD.MM.YYYY')
group by sb.nazev
order by sb.nazev asc
答案 2 :(得分:0)
在SQL Sum()
中Count()
与Sum()
不同,Count()
用于对结果行中的值求和,Count()
用于name |value
A |10
A |3
A |4
行。
令: 结果:
sum()
然后A and (10+3+4)=17
将返回Count()
,但是
A and (1+1+1)=3
会在一行中返回select sb.nazev as NAZEV,count(sb.nazev) as Pocet from Aplikacni_log lg
join zadavaci_postup zp on zp.id = lg.id_zp
join subjekt sb on sb.id = zp.id_zadavatel
where lg.create_cas > to_date('08.11.2014', 'DD.MM.YYYY')
group by sb.nazev
order by sb.nazev asc
,但您必须使用GROUP BY子句。
为你的脚本:
试
{{1}}