首页 > 解决方案 > 为了获得顺序输出,我需要更改什么?

问题描述

我是 SQL 的新手。我被分配了一项任务,我需要找出解决方案以获得顺序输出。

以下是查询:

use admin_database;

select rate , enrolledcount, is_request, is_wishlist, is_enroll, review_given_by_student, x.course_id, course_image_path, course_price, trainer_name, course_subtitle, course_title, max(batch_registration_end_date) as batch_registration_end_date, max(batch_start_date) as batch_start_date 
    from (
    SELECT
       (
        CASE WHEN noofStudents = 0 THEN 0 ELSE(
            ratings_by_enrolled_student /(5 * noofStudents)
        ) *100
    END
        ) AS rate,
    enrolledcount,
    is_request,
    is_wishlist,
    is_enroll,
    review_given_by_student,
    x.course_id,
    course_image_path,
    course_price,
    trainer_name,
    course_subtitle,
    course_title,
    batch_registration_end_date,
    batch_start_date
    FROM (
    SELECT
     COUNT( distinct e.enrolled_course_details_id) AS enrolledcount,

     SUM(
            CASE WHEN e.rating_by_enrolled_student <> 0 THEN 1 ELSE 0
        END
    ) AS noofStudents,
    SUM(
        CASE WHEN e.rating_by_enrolled_student <> 0 THEN e.rating_by_enrolled_student ELSE 0
    END
    ) AS ratings_by_enrolled_student,
    SUM(
        CASE WHEN LTRIM(RTRIM(e.review_given_by_student)) <> '' OR LTRIM(RTRIM(e.review_title)) <> '' THEN 1 ELSE 0
    END
    ) AS review_given_by_student,
        (SELECT count(s.user_id) FROM StudentEnrollRequest s WHERE s.user_id=".$user_id." AND accept_status='pending' AND s.course_id=c.course_id) AS is_request,
    (SELECT count(cw.user_id) FROM CourseWishlist cw WHERE cw.user_id=".$user_id." AND cw.course_id=c.course_id) AS is_wishlist,
    (SELECT count(eu.user_id) FROM EnrolledCourseDetails eu WHERE eu.user_id=".$user_id." AND eu.course_id=c.course_id) AS is_enroll,
    c.course_id AS course_id,
    c.course_image_path AS course_image_path,
    c.course_price AS course_price,
    c.trainer_name AS trainer_name,
    c.course_subtitle AS course_subtitle,
    c.course_title AS course_title
    FROM Courses c 

    LEFT JOIN EnrolledCourseDetails e ON
    c.course_id = e.course_id
    WHERE c.course_id IN ('515156638953610000000','586156386555710000099','676156155235810000000','740156155400610000000')  
     GROUP BY
    course_id,
    course_image_path,
    course_price,
    trainer_name,
    course_subtitle,
    course_title   
      )x inner join CourseBatch y on x.course_id=y.course_id) x group by rate ,
    enrolledcount,
    is_request,
    is_wishlist,
    is_enroll,
    review_given_by_student,
    x.course_id,
    course_image_path,
    course_price,
    trainer_name,
    course_subtitle,
    course_title

如果有人能为我提供详细解释的解决方案,我将不胜感激。

PS:抱歉缩进,我刚刚按原样复制粘贴查询并且我也是新手,因此,我仍处于学习阶段。提前感谢您的时间和帮助。

标签: mysqlsql

解决方案


在查询结束时按 x.course_id 添加订单。


推荐阅读