2

MYSQLDBにこのようなクエリがあります

SELECT date_format( doj, '%d/%m/%Y' ) AS week ,COUNT(user_id) FROm user_tb 
WHERE doj between '2012-01-01' AND '2012-01-31' group BY WEEK(doj)

Result

week    COUNT(user_id)
06/01/2012  3
17/01/2012  2
25/01/2012  3
29/01/2012  1

どうすればこのように名前を付けることができますか

week    COUNT(user_id)
week1   3
week2   2
week3   3
week4   1
4

4 に答える 4

3

1から始まる週に番号を付けたい場合は、次のようにします。

SELECT concat('week', @row := @row + 1) AS week, COUNT(user_id)
from user_tb, (select @row := 0) r
WHERE doj between '2012-01-01' AND '2012-01-31' 
group BY WEEK(doj)

編集

1年の週数が必要な場合は、次のようにします。

SELECT concat('week', week(doj)) AS week, COUNT(user_id)
from user_tb, (select @row := 0) r
WHERE doj between '2012-01-01' AND '2012-01-31' 
group BY WEEK(doj)
于 2012-07-23T09:11:37.027 に答える
1

WEEK()mysqlサイトで検索します。

于 2012-07-23T09:13:45.197 に答える
0

グループステートメントで使用したのと同じweek()関数を使用します。

SELECT CONCAT("week", WEEK(doj)) AS week, COUNT(user_id) 
FROM user_tb 
WHERE doj between '2012-01-01' AND '2012-01-31' 
GROUP BY WEEK(doj)
于 2012-07-23T09:17:48.097 に答える
-2

最も効率的な方法は、rownum(rownumber)を使用して、それを「week」と連結することだと思います(rownumberが週番号と一致するように、週ごとに並べ替えることを忘れないでください)。

週関数はその年の週数を返しますが、それはあなたが探しているものではないと思います。

于 2012-07-23T09:13:57.030 に答える