Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

गिनती के साथ mysql दिनांक सूची, भले ही विशिष्ट तिथि पर कोई डेटा न हो

अपना postid मानते हुए s आपकी तालिका में सन्निहित हैं, तो यह क्वेरी:

SELECT
  DATE_FORMAT(b.date, '%Y-%m-%d') date,
  COUNT(c.postid)
FROM
(
  SELECT
    (SELECT MAX(date) FROM ex) + INTERVAL 3 DAY - INTERVAL a.postid DAY AS date
  FROM
    ex a
) b
LEFT JOIN
  ex c ON c.date = b.date
GROUP BY
  b.date
ORDER BY
  b.date

उत्पादन करता है:

date    COUNT(c.postid)
2012-01-01  2
2012-01-02  2
2012-01-03  0
2012-01-04  2
2012-01-05  1
2012-01-06  0
2012-01-07  0

देखें http://sqlfiddle.com/#!2/2cf8d/2

अगर आपका postid s सन्निहित नहीं हैं, तो आप एक ids . का उपयोग कर सकते हैं सन्निहित आईडी की तालिका:

SELECT
  DATE_FORMAT(b.date, '%Y-%m-%d') date,
  COUNT(c.postid)
FROM
(
  SELECT
    (SELECT MAX(date) FROM ex) + INTERVAL 3 DAY - INTERVAL a.id DAY AS date
  FROM
    ids a
) b
LEFT JOIN
  ex c ON c.date = b.date
GROUP BY
  b.date
ORDER BY
  b.date DESC
LIMIT 7

देखें http://sqlfiddle.com/#!2/13035/1



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक MySQL डेटाबेस से रिकॉर्ड खींचने का कैननिकल तरीका क्या है जिसमें कम से कम/सबसे बड़ा फ़ील्ड है?

  2. MySql में एक कॉलम को कैसे फेरबदल करें

  3. केकपीएचपी गणित-गणना क्षेत्र?

  4. क्या बेहतर है - कई छोटी टेबल या एक बड़ी टेबल?

  5. एकाधिक पंक्तियों को एक पंक्ति में और mysql पर एकाधिक स्तंभों को मर्ज करना