我想在一行中得到重复的行,下面是我的表每月出勤率我的问题:
SELECT distinct a.* FROM monthly_attendance a WHERE a.month = 9 AND a.year = 2018 AND a.batch in (5) AND a.student_id=257
SELECT distinct a.*
FROM monthly_attendance a
WHERE a.month = 9
AND a.year = 2018
AND a.batch in (5)
AND a.student_id=257
但在多行中显示,下面是我的结果:
jhdbpxl91#
请注意,标准化的数据集可能是这样的——当然,可能还有进一步的标准化机会。。。
student_id batch roll_no ym a 257 27 2601 2018-09-00 4 257 27 2601 2018-09-00 6 257 27 2601 2018-09-00 8 257 1 2601 2018-09-00 11 257 5 2601 2018-09-00 12 257 5 2601 2018-09-00 14 257 5 2601 2018-09-00 17 257 5 2601 2018-09-00 19
student_id batch roll_no ym a
257 27 2601 2018-09-00 4
257 27 2601 2018-09-00 6
257 27 2601 2018-09-00 8
257 1 2601 2018-09-00 11
257 5 2601 2018-09-00 12
257 5 2601 2018-09-00 14
257 5 2601 2018-09-00 17
257 5 2601 2018-09-00 19
svdrlsy42#
您应该使用(假)聚合函数来减少行
select student_id , batch , roll_no , month , year , min(a1) , min(a2) , min(a3) , min(a4) , min(a5) , min(a6) , min(a7) , min(a8) , min(a9) , min(a10) , min(a11) , min(a12) , min(a13) , min(a14) , min(a15) , min(a16) , min(a17) , min(a18) , min(a19) from monthly_attendance a WHERE a.month = 9 AND a.year = 2018 AND a.batch in (5) and a.student_id=257GROUP BY student_id , batch , roll_no , month , year
select student_id
, batch
, roll_no
, month
, year
, min(a1)
, min(a2)
, min(a3)
, min(a4)
, min(a5)
, min(a6)
, min(a7)
, min(a8)
, min(a9)
, min(a10)
, min(a11)
, min(a12)
, min(a13)
, min(a14)
, min(a15)
, min(a16)
, min(a17)
, min(a18)
, min(a19)
from monthly_attendance a
and a.student_id=257
GROUP BY student_id
2条答案
按热度按时间jhdbpxl91#
请注意,标准化的数据集可能是这样的——当然,可能还有进一步的标准化机会。。。
svdrlsy42#
您应该使用(假)聚合函数来减少行