ResultSet rs = null;
PreparedStatement st = null;
try {
final Properties p = getProperties();
final Database db = getDatabase();
final String sql = Track.getSelectSql() + " , count(l.id) as playCount " +
" from tracks t " +
" inner join artists ar " +
" on ar.id = t.artist_id " +
" inner join albums al " +
" on al.id = t.album_id " +
" inner join genres g " +
" on g.id = t.genre_id " +
" left outer join play_log l " +
" on l.track_id = t.id " +
" group by artistId, artistName, albumId, albumName, albumYear, trackId, " +
" trackName, trackPath, trackNo, genreId, genreName, dateAdded " +
" having count(l.id) > 0 " +
" order by count(l.id) desc " +
" limit ? ";
st = db.prepare( sql );
st.setInt( 1, (int) p.get(Constants.WWW_BROWSE_POPULAR_TRACK_COUNT,20) );
rs = st.executeQuery();
final List<Track> tracks = new ArrayList<Track>();
while ( rs.next() ) {