php - MySql 查询返回每月每本书的平均章节数

标签 php mysql

非常感谢您的帮助,我正在使用 php 和 mysql,我得到了一些不切实际的结果,您可以检查我的代码是否正常...顺便说一句,涉及的表是

书籍

id, book_title, isbn, publisher, price, l1_subject_id, l2_subject_id, 
description1, description2, description3, call_date, chapter_proposal_date,
notification_acceptance_date, publishing_fee_date, final_manuscript_date,
1st_proof_reading, 2nd_proof_reading, book_schedule_date, active, url, 
pages_num, edited_by, downloaded_num, file_size, unix_name, voted, 
general_notes, BMcomment, description4, about_the_book, call_started, 
kw_mandatory, kw_other, ignore_small, show_contributing_authors

BOOKS_CHAPTERS

id, users_id, books_id, order, books_sections_id, manuscript_title, price, 
active, paypending, notice, created_at, last_modified, keywords, status,
book_editor_comments, hard_copy, invoiceing_data, extended_deadline, 
next_deadline, technical_notice, number
<小时/>
 SELECT 
COUNT(b.book_title) as `Total number of books `, 
COUNT(bc.manuscript_title) as ` Total number of chapters`, 
#DATE_FORMAT(b.call_started, '%M %Y') as `Date`, 
#DATE_FORMAT(b.call_started, '%Y-%m') as `Original date format`,
(COUNT(b.book_title)/COUNT(bc.manuscript_title)) as `Average chapter number by book per      
month`,
b.id as book_id
FROM books b
JOIN books_chapters bc ON (b.id = bc.books_id)
WHERE b.call_started IS NOT NULL AND b.call_started != '0000-00-00'
#GROUP BY MONTH(b.call_started), YEAR(b.call_started),b.id
#ORDER BY YEAR(b.call_started) ASC, MONTH(b.call_started)ASC

最佳答案

你加入章节,但你依赖书名。 这意味着您将每章的标题计入图书总数(或每月,如果您重新添加分组依据)。

使用count(distict b.book_title),或者更确切地说count(distinct b.id)count(distinct b.isbn)获取此结果集中不同书籍的数量。

章节也是如此,您还应该使用 id,它可能是唯一的、自动编号的。书籍之间的章节标题可能相同。

关于php - MySql 查询返回每月每本书的平均章节数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7606733/

相关文章:

javascript - 对 ckeditor 的 contents.css 文件所做的更改未加载

php - 我的 php 表单不断重复 mysql 中的行

php - 将变量传递给 JSON 数据的远程 PHP 文件

php - 如何显示该个人资料是否是您的?

php - 检查 session 是否设置,如果没有创建一个?

java - 如何将 ResultSet 响应传递给 JOptionPane showMessageDialog

mysql - 检查的行数如何大于表中的行数?

php - 连续将数据存储到数据库,无需按 'Submit' og 'Next'

php - cakephp 博客教程 mysql now() 出现错误

php - 用于在多次插入之前检查值的 MySQL 触发器