Group by is used to get the set of records belongs to the same group.
For Example
Select count(empno),deptno from emp group by dept
The above statement will display number of records for each department. In the same way we can all agregate functions like sum,avg etc
In group by we can select only the column(s) which are mentioned in group by clause. In above example we can't select other than deptno and agregate functions of any other columns.
Order by is display the records either in asscending or descending order. What ever the column(s) we are mentioning in the order by clause that column(s) must be exists in selct clause also. We can select all other columns which are not mentioned in order by clause.
For example
Select empno, ename,deptno from emp order by ename.
ename must be in select clause
we can select other than ename also, but we cant use any aggregate functions here.