每周是以每個周日為起點-------------------------- Suggest you use this. And you can order the records by the number of visited and get the first 10s.
謝謝樓上的:我的表結構如下: //歌曲表 create table Song ( SongID SERIAL PRIMARY KEY, --自增量ID SongName varchar(50) not null, --名曲名稱 ) //記錄訪問歌曲表 create table TopList ( TopId SERIAL PRIMARY KEY,--自增量ID TopSongId int REFERENCES Song (SongID), --歌曲ID,關聯Song表 TopData Date default(CURRENT_DATE) --記錄時間(最近瀏覽日期),默認當前時間 ) 請問列出本周歌曲排行榜的SQL語句是如何寫的?謝謝!
select count(TopSongId) as countsongid from TopList group by TopSongId where TopData between //日期要看你存日期的格式了
select TopSongId,count(TopSongId) as TopSongIdcount from TopList group by TopSongId where TopData between order by TopSongIdcount desc//日期要看你存日期的格式了 -----------------------------------------------------用这个吧~~~一个是歌曲编号,一个是数量!按照数量大小排序的,加一个日期判断就好了
那如果日期格式是date格式呢?如何判斷日期是否屬於本周?
謝謝:caotian2000(谢谢支持,努力冲星) 我查查函數表,無論能不能解決都貼出結果.謝謝!
Use the week() function in mysql:where week(date)=week(NOW())
hehe database is PostgreSQL
搞定了. SELECT current_date-EXTRACT(DOW FROM now())::integer,current_date+6-EXTRACT(DOW FROM now())::integer取到當前日期的本周日期做為條件.然後列出屬於這周的數據.感覺大家的幫助!!
SELECT current_date-EXTRACT(DOW FROM now())::integer,current_date+6-EXTRACT(DOW FROM now())::integer----------------------------------------------看不懂这个
我將每天訪問的記錄寫到數據據.但不知道如何處理每周排行的數據.這個每周是以每個周日為起點,還是用程序來自定"每周"這一天.
Suggest you use this. And you can order the records by the number of visited and get the first 10s.
//歌曲表
create table Song
(
SongID SERIAL PRIMARY KEY, --自增量ID
SongName varchar(50) not null, --名曲名稱
)
//記錄訪問歌曲表
create table TopList
(
TopId SERIAL PRIMARY KEY,--自增量ID
TopSongId int REFERENCES Song (SongID), --歌曲ID,關聯Song表
TopData Date default(CURRENT_DATE) --記錄時間(最近瀏覽日期),默認當前時間
)
請問列出本周歌曲排行榜的SQL語句是如何寫的?謝謝!
-----------------------------------------------------用这个吧~~~一个是歌曲编号,一个是数量!按照数量大小排序的,加一个日期判断就好了
SELECT current_date-EXTRACT(DOW FROM now())::integer,current_date+6-EXTRACT(DOW FROM now())::integer取到當前日期的本周日期做為條件.然後列出屬於這周的數據.感覺大家的幫助!!