Sql 编写一个查询,以按按升序排序的用户类型(pat_类型)统计用户
大家好,我很难回答这个问题。我似乎无法选择两个属性(学生和教员)并列出它们的数量 我的代码:Sql 编写一个查询,以按按升序排序的用户类型(pat_类型)统计用户,sql,oracle11g,Sql,Oracle11g,大家好,我很难回答这个问题。我似乎无法选择两个属性(学生和教员)并列出它们的数量 我的代码: SELECT PAT_TYPE, COUNT(*) FROM PATRON WHERE LOWER(PAT_TYPE) LIKE 'student%' OR LOWER(PAT_TYPE) LIKE 'faculty%' GROUP BY PAT_TYPE; 下表: 正确的输出应如下所示: PAT_TYPE | COUNT(*) 1. Faculty 6 2. Stude
SELECT PAT_TYPE, COUNT(*)
FROM PATRON
WHERE LOWER(PAT_TYPE) LIKE 'student%'
OR LOWER(PAT_TYPE) LIKE 'faculty%'
GROUP BY PAT_TYPE;
下表:
正确的输出应如下所示:
PAT_TYPE | COUNT(*)
1. Faculty 6
2. Student 44
谢谢你抽出时间 看看这个:
select pat_type,count(*) as cnt
from
(select case when lower(pat_type) like 'student%' then 'student',
else 'faculty' end as pat_type
from patron)
group by pat_type;
如果有任何疑问,请告诉我。请查看以下内容:
select pat_type,count(*) as cnt
from
(select case when lower(pat_type) like 'student%' then 'student',
else 'faculty' end as pat_type
from patron)
group by pat_type;
如果有任何疑问,请告诉我。根据您的样本数据,我认为以下查询应该有效:
SELECT LOWER(PAT_TYPE) AS PAT_TYPE, COUNT(*)
FROM PATRON
WHERE LOWER(PAT_TYPE) IN ('student', 'faculty')
GROUP BY LOWER(PAT_TYPE)
根据您的样本数据,我认为以下查询应该可以工作:
SELECT LOWER(PAT_TYPE) AS PAT_TYPE, COUNT(*)
FROM PATRON
WHERE LOWER(PAT_TYPE) IN ('student', 'faculty')
GROUP BY LOWER(PAT_TYPE)
您当前的输出是什么?为什么不是您想要的?我当前的输出列出了所有没有案例敏感性的学生和教员以及他们旁边的所有计数。您当前的输出是什么,为什么不是您想要的?我当前的输出列出了所有没有案例敏感性的学生和教员以及他们旁边的所有计数。我能够更改代码以使其适合输出。谢谢你的回复!如果不同的pat_类型为2(学生和教员),则无需更改任何内容。只需按pat_类型排序,学生和教员必须大写。我可以更改代码以使其适合输出。谢谢你的回复!如果不同的pat_类型为2(学生和教员),则无需更改任何内容。只需按pat_类型排序,学生和教员必须大写。感谢您的回复!谢谢你的回复!