访问权限:'无法对使用' *'选择的字段进行分组。

时间:2016-09-22 10:35:38

标签: sql oracle count ms-access-2007 sql-like

我正在尝试根据各种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。

1 个答案:

答案 0 :(得分: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都不支持该功能。