MySQL-基于列数据的连接

MySQL-基于列数据的连接,mysql,join,group-by,Mysql,Join,Group By,我有一个表,其中包含以下格式的数据: +---------------------+--------------+-------------------+-------------------+ | date | downloadtime | clientcountrycode | clientcountryname | +---------------------+--------------+-------------------+---------------

我有一个表,其中包含以下格式的数据:

+---------------------+--------------+-------------------+-------------------+
| date                | downloadtime | clientcountrycode | clientcountryname |
+---------------------+--------------+-------------------+-------------------+
| 2013-07-10 10:44:29 |            2 | USA               | United States     |
| 2013-07-10 10:44:25 |            4 | USA               | United States     |
| 2013-07-10 10:44:21 |            7 | USA               | United States     |
| 2013-07-10 10:44:16 |            2 | USA               | United States     |
| 2013-07-10 10:44:10 |            3 | USA               | United States     |
+---------------------+--------------+-------------------+-------------------+
clientcountryname,clientcountrycode,2013-07-05,2013-07-06,2013-07-8...
United States,USA,22,23,24
我需要通过查询此表来准备csv文件。csv文件应采用以下格式:

+---------------------+--------------+-------------------+-------------------+
| date                | downloadtime | clientcountrycode | clientcountryname |
+---------------------+--------------+-------------------+-------------------+
| 2013-07-10 10:44:29 |            2 | USA               | United States     |
| 2013-07-10 10:44:25 |            4 | USA               | United States     |
| 2013-07-10 10:44:21 |            7 | USA               | United States     |
| 2013-07-10 10:44:16 |            2 | USA               | United States     |
| 2013-07-10 10:44:10 |            3 | USA               | United States     |
+---------------------+--------------+-------------------+-------------------+
clientcountryname,clientcountrycode,2013-07-05,2013-07-06,2013-07-8...
United States,USA,22,23,24
所以,基本上我需要得到每个国家每天的平均下载时间。 我有一个查询,它将为我提供某一天的平均下载时间:

SELECT clientcountryname,clientcountrycode, avg(downloadtime), FROM tb_npp where date(date) = '2013-07-10' group by clientcountrycode;

+---------------------------------------+-------------------+-------------------+
| clientcountryname                     | clientcountrycode | avg(downloadtime) |
+---------------------------------------+-------------------+-------------------+
| Anonymous Proxy                       | A1                |          118.0833 |
| Satellite Provider                    | A2                |          978.5000 |
| Aruba                                 | ABW               |           31.8462 |

我的问题是:在SQL中是否有一种方法可以根据数据库中的日期对列名进行分组?

如果我正确理解您的问题,您也应该能够根据日期进行分组:

SELECT clientcountryname,clientcountrycode,Date, avg(downloadtime),
FROM tb_npp 
GROUP BY clientcountrycode,clientCountryCode,Date;

谢谢,但是没有,我正在考虑根据日期列中的数据进行完整的外部联接