1.数据表中有一个时间字段f_signTime(yyyy-MM-dd).
2.把这个字段划分成4个季度。
3.此数据表中有一个浮点型f_offerRate字段。要求:根据f_signTime划分为四个季度,并且把每一个季度的f_offerRate平均值统计出来。求各位给力达人帮助,谢谢。

解决方案 »

  1.   

    select QUARTER(f_signTime) ,avg(f_offerRate) from tt group by QUARTER(f_signTime)
      

  2.   

    QUARTER(f_signTime) 返回的不就是 1,2,3,4吗?
      

  3.   

    mysql> select quarter('2010-01-01');
    +-----------------------+
    | quarter('2010-01-01') |
    +-----------------------+
    |                     1 |
    +-----------------------+
    1 row in set (0.00 sec)mysql> select quarter('2010-05-01');
    +-----------------------+
    | quarter('2010-05-01') |
    +-----------------------+
    |                     2 |
    +-----------------------+
    1 row in set (0.00 sec)mysql> select quarter('2010-09-01');
    +-----------------------+
    | quarter('2010-09-01') |
    +-----------------------+
    |                     3 |
    +-----------------------+
    1 row in set (0.00 sec)mysql> select quarter('2010-011-01');
    +------------------------+
    | quarter('2010-011-01') |
    +------------------------+
    |                      4 |
    +------------------------+
    1 row in set (0.00 sec)
      

  4.   


       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。   
      

  5.   

    1.表结构,数据自己填充下。CREATE TABLE `t_biz_salecontract` (
      `pk_id` bigint(20) NOT NULL AUTO_INCREMENT,
      `f_contractId` varchar(100) DEFAULT NULL COMMENT '合同编号',
      `f_contractType` varchar(10) DEFAULT NULL COMMENT '合同类型(1、进出口:YE/11、2、股份:YEN/10、3、内销:YNE-D012)',
      `fk_customer_id` bigint(20) DEFAULT NULL COMMENT '客户编号',
      `f_contacts` varchar(200) DEFAULT NULL COMMENT '客户联系方式',
      `f_signTime` datetime DEFAULT NULL COMMENT '合同签订日期',
      `fk_moneyType_id` bigint(20) DEFAULT NULL COMMENT '结算币种',
      `fk_bank_id` bigint(20) DEFAULT NULL COMMENT '银行',
      `fk_payment_id` bigint(20) DEFAULT NULL COMMENT '付款方式',
      `f_deliveryTime` datetime DEFAULT NULL COMMENT '合同发货日期',
      `f_reqArrivalTime` varchar(200) DEFAULT NULL COMMENT '要求到货日期',
      `f_state` int(11) DEFAULT NULL COMMENT '合同状态(0:作废,1:正常,2:已采购入库,3:已发货,9:已结算)',
      `f_purchaseState` int(11) DEFAULT NULL COMMENT '是否购入(0:否,1:是)',
      `f_paymentState` int(11) DEFAULT NULL COMMENT '是否付款(0:否,1:是)',
      `f_deliveryState` int(11) DEFAULT NULL COMMENT '是否发货(0:否,1:是)',
      `fk_country_id` bigint(20) DEFAULT NULL COMMENT '国别',
      `f_destination` varchar(200) DEFAULT NULL COMMENT '货品目的地',
      `f_sampleState` tinyint(1) DEFAULT NULL COMMENT '是否凭样',
      `f_sampleBatch` varchar(500) DEFAULT NULL COMMENT '样品批次',
      `f_deputyNum` varchar(500) DEFAULT NULL COMMENT '代表数量',
      `f_offerRate` decimal(18,2) DEFAULT NULL COMMENT '报盘汇率',
      `f_settleRate` decimal(18,2) DEFAULT NULL COMMENT '结算汇率',
      `f_orderNum` varchar(100) DEFAULT NULL COMMENT '订单号',
      `fk_inputPerson_id` bigint(20) DEFAULT NULL COMMENT '录单人员编号',
      `f_inputTime` datetime DEFAULT NULL COMMENT '录单日期',
      `f_totalAmount` decimal(18,2) DEFAULT NULL COMMENT '合同总金额',
      `f_totalQuantity` decimal(18,2) DEFAULT NULL COMMENT '商品销售总数量',
      `f_re` text COMMENT '合同说明',
      PRIMARY KEY (`pk_id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=81 DEFAULT CHARSET=utf8 COMMENT='销售合同信息';2.根据f_signTime字段,该字段里面的数据格式都是(yyyy-mm-dd),根据此字段统计出每年4个季度offerRate和settleRate平均值如2011年:第一季度 | avg(offerRate)| avg(settleRate)3.参数就是一个,我会传递一个时间参数比如2011年