Sequential pattern mining is an important data mining problem with broad arplications such as market analysis, web access, pattern analysis, intrusion detection in network environment, in DNA research, and predicting the shopping needs of customers. Sequential pattern mining discovers frequent subsequences as patterns in sequence database. Since introduced by Agrawaland Srikant, now, this problem has attracted a lot of researchers and there are many techniques proposed. The very first was Apriori-based algorithm, later more scalable algorithms for complex applications were developed. This paper presents and analyzes the techniques by clustering techniques in three main groups: apriori-based, pattern-growth, early-pruning. This paper also compares different techniques based on the important key features and discusses some challenges in which existing research is focused.