书名 作者
---------- ----------
AA a
BB b
CC a、b
DD c
EE a、c
其中书《CC》为作者a、b共写书目《EE》为作者a、c共写书目
如果用下面SQL语句:select 作者,count(作者) as 著书数 from T group by (作者) having count(*)>=1得到结果:作者 著书数
---------- ----------
a 1
a、b 1
a、c 1
b 1
c 1请问如何写SQL语句可以得到如下结果呢(三位作者分别著书的数量)作者 著书数
---------- ----------
a 3
b 2
c 2
---------- ----------
AA a
BB b
CC a、b
DD c
EE a、c
其中书《CC》为作者a、b共写书目《EE》为作者a、c共写书目
如果用下面SQL语句:select 作者,count(作者) as 著书数 from T group by (作者) having count(*)>=1得到结果:作者 著书数
---------- ----------
a 1
a、b 1
a、c 1
b 1
c 1请问如何写SQL语句可以得到如下结果呢(三位作者分别著书的数量)作者 著书数
---------- ----------
a 3
b 2
c 2
-------------------- --------------------
AA a
BB aa
CC a、aa
DD aaa
EE a、aaaSQL>
SQL> SELECT t1.author,COUNT(*)
2 FROM t t1, t t2
3 WHERE instr(t1.author, '、') < 1
4 AND instr('、' || t2.author || '、', '、' || t1.author || '、') > 0
5 GROUP BY t1.author
6 /AUTHOR COUNT(*)
-------------------- ----------
a 3
aa 2
aaa 2