添加sum()或count()来查询

时间:2015-03-23 08:25:51

标签: sql oracle

我有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

3 个答案:

答案 0 :(得分:1)

要使用sumcount 以及要在上分组的列,您需要group by子句:

select   sb.nazev, count(*)
from Aplikacni_log lg 
...
group by sb.nazev
order by sb.nazev asc

如果您不需要列(或列)进行分组,则可以省略group by。结果将是总countsum

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}}