我在试着数表中有多少个名字至少有一个字母‘a’或‘A’,有多少个名字至少有一个字母‘e’或‘E’

实际上,我的问题是如何按照以下思路做一些事情:

SELECT count(lower(nazwisko) like '%a%') as "Ile nazwisk z A", count(lower(nazwisko) like '%e%') as "Ile nazwisk z E"
FROM pracownicy

当此代码返回时

ORA-00907: missing right parenthesis

"nazwisko"是字符串列.我想在一个单一的查询中做到这一点,最好不要有子查询(如果可能的话)用于学习目的

我正在使用Oracle SQL Developer

for reference let me include the table I am working on and expected output table view

expected output

推荐答案

使用条件聚合:

SELECT COUNT(CASE WHEN LOWER(nazwisko) LIKE '%a%' THEN 1 END) as "Ile nazwisk z A",
       COUNT(CASE WHEN LOWER(nazwisko) LIKE '%e%' THEN 1 END) as "Ile nazwisk z E"
FROM   pracownicy

其中,对于样本数据:

CREATE TABLE pracownicy (nazwisko) AS
SELECT 'Alice' FROM DUAL UNION ALL
SELECT 'Beryl' FROM DUAL UNION ALL
SELECT 'Carol' FROM DUAL UNION ALL
SELECT 'Debra' FROM DUAL UNION ALL
SELECT 'Emily' FROM DUAL UNION ALL
SELECT 'Fiona' FROM DUAL UNION ALL
SELECT 'Glory' FROM DUAL UNION ALL
SELECT 'Heidi' FROM DUAL UNION ALL
SELECT 'Irene' FROM DUAL;

输出:

Ile nazwisk z A Ile nazwisk z E
4 6

fiddle

Sql相关问答推荐

Select 最大值,但当并列时,从其他列 Select 最大值

Oracle SQL-将结果列在单行中

为什么在postgres中,横向连接比相关子查询快?

Lag()函数的差异:R与SQL(将R代码转换为SQL)

对非RUST源代码字符串使用`stringify!`,例如SQL查询

PostgreSQL抽奖查询

具有多个条件的SQL否定

数据库SQL PARSE_SYNTAX_ERROR

如何用HeidiSQL在Firebird中设置超时?

统计PostgreSQL中前10个最大大小表的行数

显示十进制列,但尽可能显示为整数

根据具有特定值的 ID 创建自定义组

如何根据 SQL 中的阈值标记一个集群中的所有值?

YEAR 函数仍然不可SARGable 吗?

Spark / Hive:如何获取列中正值的百分比?

JSON对象查询SQL服务器

Postgres数据库维护:基于GROUP BY删除旧记录

Oracle函数中无法动态迭代创建的SYS_REFCURSOR

在 postgresql 中保存带有时间戳的几何类型数据

使用 JSON_BUILD_OBJ 从 Postgres 返回 JSON