Why did my order get executed at different price points?
When you place a market order, the order will get executed at the best bid/offer available at the exchange. If the quantity of the existing bids/offers isn't enough to match your order quantity, in that case, the remaining unexecuted quantity will be matched against the next best bid/offer.
Let's us understand this using an example:
Below is the market depth of ITC, let's assume you place a market order to buy 3500 shares, 108 shares will get purchased at 263.20, 934 shares will get purchased at 263.30 and the remaining 2458 shares will be purchased at 263.35
The same concept applies to limit orders in a different way. In the above example if you had placed a limit order to buy the 3500 shares at 263.20, then 108 shares would be bought immediately but the remaining shares 3392 quantity will stay as a pending order in your order book, and subsequently, if any offer at your price comes in, the order will be executed.
Note: If any of the bids/offers have the disclosed quantity only, in that case, the quantity executed will be different from that seen in the market depth.