3

私はこのようなテーブルを持っています

sell_price double        buy_price double      time int(11)
31.5                     20.5                  1353755931 (2012-11-27)
20                       10.5                  1353755235 (2012-11-27)
40                       30                    1353752531 (2012-11-26)
50                       25                    1353751237 (2012-11-26)
40                       10                    1353745609 (2012-11-25)           

そして、すべての値をグループ化して各曜日の売上を取得しようとしています。目的のテーブルは次のようになります。

sell_price double        buy_price double      time int(11)
51.5                     30.5                  1353755931 (2012-11-27)
90                       55                    1353755931 (2012-11-26)
40                       10                    1353755931 (2012-11-25) 

次のクエリを試しましたが、グループ化に問題があるようです

SELECT sell_price, buy_price, time 
FROM sales 
GROUP BY DAY(time) 
ORDER BY time DESC

上記のクエリは1行のみを返します

31.5       20.5      1353755931 

これを達成するための正しい方法は何ですか?

4

2 に答える 2

2
SELECT DATE(FROM_UNIXTIME(time)) time,
       SUM(sell_price),
       SUM(buy_price)
FROM tableName
GROUP BY DATE(FROM_UNIXTIME(time))
于 2012-11-27T16:28:56.323 に答える
0

このフィドルからわかるように、

SELECT
            sell_price,
            buy_price,
            time,
            day(time)
    FROM
        sales

day(time)に評価されnull、価格に集計関数を指定しないため、すべての最初の行だけが取得されます。

このフィドルを調べると。

SELECT
            sell_price,
            buy_price,
            date(from_unixtime(time))
    FROM
        sales;

これらの数値がUNIX回有効であると仮定すると、すべてのデータが同じ日にあることがわかります。

于 2012-11-27T16:39:10.537 に答える