diff --git a/pkg/sqlite/tag.go b/pkg/sqlite/tag.go index ea6eb17d0..922c8f41d 100644 --- a/pkg/sqlite/tag.go +++ b/pkg/sqlite/tag.go @@ -600,7 +600,7 @@ func (qb *tagQueryBuilder) getTagSort(query *queryBuilder, findFilter *models.Fi case "scenes_count": return getCountSort(tagTable, scenesTagsTable, tagIDColumn, direction) case "scene_markers_count": - return getCountSort(tagTable, "scene_markers_tags", tagIDColumn, direction) + return fmt.Sprintf(" ORDER BY (SELECT COUNT(*) FROM scene_markers_tags WHERE tags.id = scene_markers_tags.tag_id)+(SELECT COUNT(*) FROM scene_markers WHERE tags.id = scene_markers.primary_tag_id) %s", getSortDirection(direction)) case "images_count": return getCountSort(tagTable, imagesTagsTable, tagIDColumn, direction) case "galleries_count": diff --git a/pkg/sqlite/tag_test.go b/pkg/sqlite/tag_test.go index 3a9dbd1f9..9309a826c 100644 --- a/pkg/sqlite/tag_test.go +++ b/pkg/sqlite/tag_test.go @@ -191,7 +191,7 @@ func TestTagQuerySort(t *testing.T) { sortBy = "scene_markers_count" tags = queryTags(ctx, t, sqb, nil, findFilter) - assert.Equal(tagIDs[tagIdxWithMarkers], tags[0].ID) + assert.Equal(tagIDs[tagIdxWithPrimaryMarkers], tags[0].ID) sortBy = "images_count" tags = queryTags(ctx, t, sqb, nil, findFilter)