mysql - 为了获得顺序输出,我需要更改什么?
问题描述
我是 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
- 我在 WHERE 子句的括号中通过了 course_id。我需要表格,其中输出必须按 course_id 以括号中传递的顺序方式排序,而不是随机排序。
- 下面是我目前得到的输出,你可以参考 course_id 的序列,它与括号中传递的序列不匹配:Output_Image
如果有人能为我提供详细解释的解决方案,我将不胜感激。
PS:抱歉缩进,我刚刚按原样复制粘贴查询并且我也是新手,因此,我仍处于学习阶段。提前感谢您的时间和帮助。
解决方案
在查询结束时按 x.course_id 添加订单。
推荐阅读
- python - 无法抓取“shopee.com.my”畅销产品页面
- python - 在 docker python 中运行复制命令无法处理星号
- google-apps-script - 使用应用脚本将公式添加到特定单元格
- git - 在本地 git config 中使用 smudge 和 cat 覆盖过滤器
- vue.js - Vuetify v-card 提升不显示,flat 属性显示
- mysql - MySql Query 在我的本地版本 (8.0.21) 和我的暂存 (5.7.12) 上的行为不同
- php - Laravel 8资源控制器未获取模型
- javascript - 在按钮内选择单选
- python - Pandas 适用于 DF 返回“对象类型没有名为 1 的轴
- swift - 无法为 Apple Watch 编译 RxCocoa