我已經提出問題,希望能夠更好地感知!MySQL查詢中的小計
我有這個疑問
SELECT Player.MembershipNo , Player.FirstName , Player.LastName
, Venue.VenueName as Venue, Results.MemCard, Results.EarlyReg
, Position.Points as Venue_Points, Results.Date
FROM Position , Player , Results , Venue
WHERE Player.MembershipNo =Results.MembershipNo
AND Results.Position =Position.Position
AND Venue.VenueID =Results.VenueID
AND Results.Date BETWEEN '2014-07-01' AND '2014-09-30'
ORDER BY MembershipNo, Venue
返回這些結果:
+--------------+-----------+----------+-------------------+---------+----------+--------------+------------+
| MembershipNo | FirstName | LastName | Venue | MemCard | EarlyReg | Venue_Points | Date |
+--------------+-----------+----------+-------------------+---------+----------+--------------+------------+
| 0 | Bob | Stevens | The Dolphin | 1 | 1 | 32 | 27/08/2014 |
| 0 | Bob | Stevens | The Enigma Tavern | 1 | 1 | 40 | 08/07/2014 |
| 0 | Bob | Stevens | The Enigma Tavern | 1 | 1 | 16 | 15/07/2014 |
| 1 | Dave | Green | The Dolphin | 1 | 1 | 20 | 13/08/2014 |
| 1 | Dave | Green | The Dolphin | 1 | 1 | 2 | 20/08/2014 |
+--------------+-----------+----------+-------------------+---------+----------+--------------+------------+
我想也看到的總次數會員號碼顯示在結果表,而不是COUNT DISTINCT因爲會給我這個:
+--------------+-----------------+-----------+----------+-------------+---------+----------+--------------+------------+
| MembershipNo | MembershipCount | FirstName | LastName | Venue | MemCard | EarlyReg | Venue_Points | Date |
+--------------+-----------------+-----------+----------+-------------+---------+----------+--------------+------------+
| 0 | 3 | Bob | Stevens | The Dolphin | 1 | 1 | 32 | 27/08/2014 |
| 1 | 2 | Dave | Green | The Dolphin | 1 | 1 | 20 | 13/08/2014 |
+--------------+-----------------+-----------+----------+-------------+---------+----------+--------------+------------+
什麼我想要的是會員計數在每條線上的原始數據是這樣的:
+--------------+-----------------+-----------+----------+-------------------+---------+----------+--------------+------------+
| MembershipNo | MembershipCount | FirstName | LastName | Venue | MemCard | EarlyReg | Venue_Points | Date |
+--------------+-----------------+-----------+----------+-------------------+---------+----------+--------------+------------+
| 0 | 3 | Bob | Stevens | The Dolphin | 1 | 1 | 32 | 27/08/2014 |
| 0 | 3 | Bob | Stevens | The Enigma Tavern | 1 | 1 | 40 | 08/07/2014 |
| 0 | 3 | Bob | Stevens | The Enigma Tavern | 1 | 1 | 16 | 15/07/2014 |
| 1 | 2 | Dave | Green | The Dolphin | 1 | 1 | 20 | 13/08/2014 |
| 1 | 2 | Dave | Green | The Dolphin | 1 | 1 | 2 | 20/08/2014 |
+--------------+-----------------+-----------+----------+-------------------+---------+----------+--------------+------------+
任何想法我可以做到這一點?
你可以在這裏寫你的組合查詢嗎? – Miki 2014-09-22 21:34:27
呃,你以後有什麼結果? MySQL確實爲GROUP BY(SQL標準的擴展)提供了「WITH ROLLUP」修飾符,它可以做你正在尋找的東西。 [http://dev.mysql.com/doc/refman/5.5/en/group-by-modifiers.html](http://dev.mysql.com/doc/refman/5.5/en/group-by- modifiers.html) – spencer7593 2014-09-22 21:41:37
@ spencer7593 Doesnt WITH ROLLUP必要小計的東西(如加起來的數字)?我需要指望每個玩家的成員數量出現在結果表中的次數,而不是任何數量的總和。 (希望是有道理的)。 在上面的決賽桌中,我在每一行都有這個計數,這使得當我以後需要在php頁面中提取時很容易。也許我根本不需要結合這些查詢,但是我無法將其解決! – 2014-09-23 16:57:34