2016-09-22 45 views
0

我想基于各种like指标分析来选择行,并写了下面的功能’。”:访问:*“不能与所选的字段组‘

SELECT *, 
COUNT(YRKE) AS Antall_med_yrket 
FROM [T8 kopi (til sletting) av T7 3] 
WHERE YRKE like "*læge*" 
    OR YRKE like "*præst*" 
    OR YRKE like "*Lærer*" 
    OR YRKE like "*lærer*" 
    OR YRKE like "*chef.*" 
    OR YRKE like "*mester*" 
    OR YRKE like "*Portner*" 
    OR YRKE like "*portner*" 
    ⋮ 
    OR YRKE like "*fuglefanger*" 
    ⋮ 
    OR YRKE like "*Glasanfanger*" 
GROUP BY YRKE 
; 

的“⋮”表示省略线。我想要做的是显示所有出现表示单词的行,并显示这些单词的点击次数。示例输出:

ID NAVN   YRKE      Antall_med_yrket 
1 Ole Olsen  Fuglefanger    3 
2 Per Olsen  Skogbruger (Fuglefanger) 3 
3 Olav Krogh  Fængselslæge    1 
4 Kristen Persen Gaardbruger (Fuglefanger) 3 
5 Per Kristensen Fængselsdirecteur   1 

然而,当我加入COUNT线,我得到错误信息在标题中显示。删除行可以根据需要输出所有行,但当然不需要计数。我究竟做错了什么?

我在Oracle上使用MS Access 2007。

+0

嗨,不知道如何MS Access处理的东西,但在甲骨文%是LIKE语句使用通配符 – davegreen100

回答

3

这是正确的。下面应该工作:

SELECT YRKE, COUNT(YRKE) AS Antall_med_yrket 
FROM [T8 kopi (til sletting) av T7 3] 
WHERE YRKE like "*læge*" 
    OR YRKE like "*præst*" 
    OR YRKE like "*Lærer*" 
    OR YRKE like "*lærer*" 
    OR YRKE like "*chef.*" 
    OR YRKE like "*mester*" 
    OR YRKE like "*Portner*" 
    OR YRKE like "*portner*" 
    ⋮ 
    OR YRKE like "*fuglefanger*" 
    ⋮ 
    OR YRKE like "*Glasanfanger*" 
GROUP BY YRKE; 

在SQL查询聚集在SELECT列一般需要为以下之一:在GROUP BY明确提到

  • GROUP BY中明确提及的列形成的表达式。
  • 聚合函数的参数,如SUM()MIN()

注意:有些数据库中允许有一个例外(基本上,您可以说GROUP BY id并在id唯一时使用其他列)。但是,MS Access和Oracle都不支持该功能。

+0

所以我的查询失败的原因是,我没有专门列出我的选择行中的列? –

+0

@CannedMan。 。 。原因是因为你包含'*'。 –