我正在尝试根据各种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 :(得分: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都不支持该功能。