1

各行の学期にレジスタ番号、dob、学生名、性別、合計マークを持つmysqlテーブルがあります。1回のSQLクエリで合計点数の降順で10人の男の子と5人の女の子のレコードを取得したいと思います。

4

3 に答える 3

1

私のMySQL方言はさびていますが、これでうまくいくはずです

(SELECT * FROM Students WHERE sex = 'Male' ORDER BY TotalMarks DESC LIMIT 10)
UNION ALL
(SELECT * FROM Students WHERE sex = 'Female' ORDER BY TotalMarks DESC LIMIT 5)

これは単一のクエリです。

于 2012-07-31T13:20:11.437 に答える
0

このコードを試してください:

select 
    a.studentID,
    a.studentName,
    a.dob,
    a.totalMark
from
(
    select
        studentID,  
        studentName,
        dob,
        totalMark
    from
        students
    where
        sex='M'
    order by 
        studentMark desc
    limit 10
    union all
    select
        studentID,  
        studentName,
        dob,
        totalMark
    from
        students
    where
        sex='F'
    order by 
        totalMark desc
    limit 5
)
order by
    totalMark desc
于 2012-07-31T13:20:31.363 に答える
0

これを試して

    select * from
    (select reg_number, dob, student_name, sex, total_marks where sex='male' 
    order by total_marks desc limit 10
    union
    select reg_number, dob, student_name, sex, total_marks where sex='female'
    order by total_marks desc limit 5) a order by total_marks desc
于 2012-07-31T13:20:39.030 に答える