這裏是我的表:我如何計算總體結果並將它們分組?
// posts
+----+-----------+--------------------+------------+--------+
| id | title | body | author_id | amount |
+----+-----------+--------------------+------------+--------+
| 1 | post1 | somthing | 2543 | 5000 |
| 2 | post2 | something else | 4352 | NULL |
| 3 | post3 | whatever | 1563 | 1200 |
| 4 | post4 | test context | 7234 | NULL |
| 5 | post5 | anything ... | 4352 | NULL |
+----+-----------+--------------------+------------+--------+
另外我有兩個疑問:
SELECT COUNT(*), COUNT(amount) FROM posts
+----------+---------------+
| COUNT(*) | COUNT(amount) |
+----------+---------------+
| 5 | 2 |
+----------+---------------+
SELECT * FROM posts ORDER BY id LIMIT 0,2
+----+-----------+--------------------+------------+--------+
| id | title | body | author_id | amount |
+----+-----------+--------------------+------------+--------+
| 1 | post1 | somthing | 2543 | 5000 |
| 2 | post2 | something else | 4352 | NULL |
+----+-----------+--------------------+------------+--------+
現在,我想這兩個查詢組合,這是預期的結果:
+----+-----------+--------------------+------------+--------+----------+---------------+
| id | title | body | author_id | amount | COUNT(*) | COUNT(amount) |
+----+-----------+--------------------+------------+--------+----------+---------------+
| 1 | post1 | somthing | 2543 | 5000 | 5 | 2 |
| 2 | post2 | something else | 4352 | NULL | 5 | 2 |
+----+-----------+--------------------+------------+--------+----------+---------------+
我該如何做到這一點?這是我迄今爲止嘗試過的錯誤,它總是返回一行:
SELECT x.*, COUNT(*), COUNT(amount)
FROM (
SELECT * FROM posts ORDER BY id
) x
LIMIT 0,2
將第二個查詢交叉連接到第一個。 – xQbert