Mysql SQL中包含3列的计数查询

Mysql SQL中包含3列的计数查询,mysql,sql,mysql-workbench,Mysql,Sql,Mysql Workbench,我有一个名为“Library”的数据库,表名为“Medien”。 由于其中有多个列,我需要查询以下列名为Fname、Mname、Lname和ISBN 我想计算有ISBN和没有ISBN的数据库总记录数? Fname=作者的名字 Mname=作者的中间名 Lname=作者的姓氏 我想数一数有多少记录是ISBN的,有多少记录是没有ISBN的 我必须执行以下命令 Select COUNT(ISBN) as Fname FROM `library`.`MEDIEN` where Fname =

我有一个名为“Library”的数据库,表名为“Medien”。 由于其中有多个列,我需要查询以下列名为Fname、Mname、Lname和ISBN

我想计算有ISBN和没有ISBN的数据库总记录数?

  • Fname=作者的名字
  • Mname=作者的中间名
  • Lname=作者的姓氏
我想数一数有多少记录是ISBN的,有多少记录是没有ISBN的

我必须执行以下命令

 Select COUNT(ISBN) as Fname FROM  `library`.`MEDIEN` where  Fname = `isbn`;
 Select COUNT(ISBN) as Mname FROM  `library`.`MEDIEN` where  Mname = `isbn`;
 Select COUNT(ISBN) as Lname FROM  `library`.`MEDIEN` where  Lname = `isbn`;
 Select COUNT(ISBN) as NtFname FROM `library`.`MEDIEN`where  Fname != `isbn`;
 Select COUNT(ISBN) as NtMname FROM `library`.`MEDIEN`where  Mname != `isbn`;
 Select COUNT(ISBN) as NtLname FROM `library`.`MEDIEN`where  Lname != `isbn`;
我不确定我是否执行了正确的命令。 因为一些ISBN记录分别有Fname、Mname或Fname、Lname或Mname、Lname或Fname、Lname、Mname

比如说

第一作者

姓名:亚舍 姓名:baig

我写了5本书,但其中两本有ISBN

总输出将为ISBN=2

欲望输出将是这样的

ISBN=value和NtISBN=value


请帮助我解决此查询

您可能只想使用两个查询,并使用OR子句。这将避免某些行被计数两次:

Select COUNT(ISBN) as count FROM library.MEDIEN where
 verf1 = 'isbn'
 OR verf2 = 'isbn'
 OR verf3 = 'isbn';
当然,反过来说:

Select COUNT(ISBN) as count FROM library.MEDIEN where verf1 != 'isbn'
   AND verf2 != 'isbn'
   AND verf3 != 'isbn';

你能试试这个查询吗

SELECT SUM (CASE WHEN (verf1 = 'isbn' OR verf2 = 'isbn' OR verf3 = 'isbn') THEN 1 ELSE 0 END ) ISBNCount
        SUM (CASE WHEN (verf1 = 'isbn' OR verf2 = 'isbn' OR verf3 = 'isbn') THEN 0 ELSE 1 END ) NtISBNC 
         FROM library.MEDIEN

请发布您的模式、示例数据和所需的输出。什么是verf1、verf2、verf3?你的问题不清楚,不清楚你想要什么,也不清楚你有什么麻烦。如果您发布以下三件事,我们可能会更有信心地帮助您:
1。
一组数据样本<代码>2。您想要得到的结果<代码>3。您实际得到的结果,以及为什么会出现问题。。。。除了
verfn
列之外,其他列都是他用于
COUNT()
聚合的别名(或者看起来是),因此它们可能不存在于原始表中?@Clockwork Muse-Yea有效点。虽然从“我想计算有ISBN和没有ISBN的数据库记录”这句话中,我想我理解了海报的实际意图。我想他们只是被SQL语法弄糊涂了。希望他们能澄清,但我想我会留下我的答案,以防它有帮助。@asherbaig-我想你需要发布你的模式。
ISBN
是一列吗?您是否正在为特定作者查找不同的
ISBN
值?共有4列,其中一列为ISBN。不,我想计算列中的ISBN总数,但每个ISBN数都有Fname、Mname或Lname。由于记录总数为282953,其中有多少记录有ISBN号,有多少记录没有ISBN记录。对于exmaple在我执行查询后,它给出72589条记录或行有isbn,25589没有isbn号。我希望这是清楚的。具有isbn值的行将是:
select count(1)from library.MEDIEN,其中ISDN不为空,没有ISDN号的记录则相反:
从library.MEDIEN中选择count(1),其中ISDN为空